ショートコード

の記事

  • ショートコードだって get_template_part()したい

    WordPressのショートコードはHTMLを出力(echo)ではなく、返す(return)ところが要点だ。
    HTMLをゴニョゴニョ生成してreturnする。とはいうものの投稿一覧を表示する場合に通常はget_template_part()でよいところ、ショートコードでこれを呼び出すとその場で内容が出力されてしまう。似たコードをfunctions.phpに書いてreturn せねばならないのか?面倒だしモヤモヤする。

    なんとかショートコードでget_template_part()を使うことはできないものか?横着な私は考えた。
    (さらに…)

    ショートコードだって get_template_part()したい
  • ショートコードに勝手に入ってくるpタグ

    ショートコードが勝手にpタグに囲まれてしまう場合がある。
    例えば投稿記事で、
    <h3>タイトル</h3>[my_shortcode /]
    というふうにhタグの直後にショートコードを使った場合に発生する。hタグの次はpタグがこなくてはならないマークアップの法則にでも準拠してくれた結果なのだろう。出力されるHTMLは、
    <h3>タイトル</h3><p>(ショートコードの出力)
    となる。<p>だけを勝手に入れて</p>で閉じてくれないのが非常に困る。
    このような場合は、
    <h3>タイトル</h3><p>[my_shortcode /]</p>
    と、最初から投稿記事にpタグを書いてしまうと解決する。出力されるHTMLは、
    <h3>タイトル</h3>(ショートコードの出力)
    となる。自分で書いたpタグまでもが消えているから不思議なのだが、解決したからいいか。

  • ショートコードの作りかた

    ショートコードとは、記事中に記述することで実行させるプラグインのことだ。有名なショートコードのプラグインに、ソースコードを表示するためにここでも使っている「SyntaxHighlighter Plus」がある。

    ショートコードは以下のように記事中に記述する。
    [hello color=”red”]ほにゃらら[/hello]

    プラグインでは、add_shortcodeで定義した関数を用意する。下の例では、赤い文字で”ほにゃらら”と表示する。この場合の出力はechoではなく、returnとすることに注意したい。
    $attsの引数で、属性値を受け取ることもできる。

    [sourcecode language=’php’]
    function showhello($atts, $content) {
    extract( shortcode_atts( array(‘color’ => ”), $atts ));
    return ‘

    ‘ .$content .’

    ‘;
    }

    add_shortcode(‘hello’, ‘showhello’);
    [/sourcecode]

    ショートコードは記事中だけでなく、テーマで使用することもできる。テーマで使用する場合は、 do_shortcode()を使う。
    [sourcecode language=’php’]

    [/sourcecode]