ショートコードいろいろ
ショートコードはthe_content() 呼び出し時に実行される
ショートコードはthe_content() を呼び出したときのみ、実行されます。
たとえばget_the_content() 実行時など、ショートコードは実行されず[ショートコード名]という文字列のまま返ってきます。
このようなときは、返ってきた文字列にたいしてdo_shortcode()を使えば解決できます。
$content = get_the_content(); do_shortcode($content);
こうすることで、ショートコードが実行されたソースが出力されます。
テンプレート内でもショートコードを実行したい
たとえばTwitterのリンクを出力するショートコードを作ったとします。
function twitter_account(){ return '<a href="Twitterアカウントのリンク">アカウント名</a>'; } add_shortcode('show_twitter', 'twitter_account');
これをテンプレート用PHPでも使用したい場合も、do_shortcode()を使います。
<?php echo do_shortcode('[show_twitter]'); ?>
囲み型のショートコードの場合は次のようにすればOKです。
function RSS_link_func($atts, $content=null){ extract(shortcode_atts(array(),$atts)); $link = Twitterアカウントのリンク; return '<a href="'.$link.'">'. $content . '</a>'; } add_shortcode('RSS_link', 'RSS_link_func');
これをテンプレート内で実行するには
<?php echo do_shortcode('[show_twitter]アカウント名[/show_twitter]'); ?>