WordPressのショートコードを作成する方法をメモ。
サンプルコード
ショートコードで実行する関数と、ショートコードを登録する関数をfunctions.phpに記述します。
functions.php
function greet_func($atts) { $params = shortcode_atts(array( 'name' => '小鳥遊', 'greeting' => 'こんにちは', ), $atts); return $params['name'] . 'さん' . $params['greeting']; } add_shortcode('greet', 'greet_func');
greet_func()が今回作成したショートコードで実行する関数、add_shortcode()が登録する関数です。
ショートコードには属性を設定することができ、指定した場合は実行する関数の第一引数に入ります。
2~5行目で各属性の初期値を設定しています。
add_shortcode()は第一引数にショートコードで使用する文字列、第二引数に実行する関数を指定します。
実際に管理画面の投稿内で以下のように記述してみます。
[greet] [greet name="日下部" greeting="こんばんは"]
[]の中はadd_shortcode()の第一引数で指定した値が入ります。
記事には以下のように表示されました。
小鳥遊さんこんにちは 日下部さんこんばんは
上記サンプルでは[greet]のような形ですが、ショートコードで囲う形での指定もできます。
functions.php
function link_func($atts, $content = null) { $params = shortcode_atts(array( 'href' => 'http://demichan.com/', 'target' => null, ), $atts); return '<a href="' . $params['href'] . '" target="' . $params['target'] . '">' . $content . '</a>'; } add_shortcode('link', 'link_func');
実行する関数の第二引数にショートコードで囲った内容が入ります。
実際に以下のように投稿して試してみます。
[link]亜人ちゃん[/link] [link href="http://konosuba.com/" target="_blank"]このすば[/link]
記事には以下のように表示されました。
<a href="http://demichan.com/" target="">亜人ちゃん</a> <a href="http://konosuba.com/" target="_blank">このすば</a>
【参考サイト】
コメントが承認されるまで時間がかかります。