functions.phpの編集やテーマの自作などで、PHPコードからショートコードを実行したいときがあるでしょう。
以下のようなプログラムを書いてみたけど、うまくいかない人もいるはずです。
add_filter('the_content', function($content){
$add_code = '[sample_sc]'; //有効なショートコード
//[sample_sc]がそのまま出力される
return $add_code . $content;
});
今回は、PHPからショートコードを実行する方法を解説していきます。
目次から探す
PHPからショートコードを実行する方法
実は難しいことは何もありません。
ショートコードを実行したい場合は、ショートコードを含んだ文字列をdo_shortcode関数
に渡すだけです。
do_shortcode('[ショートコードの文字列]');
ショートコードの形式になっている文字列の部分だけショートコードを展開するため、"テキストテキ[sample_sc]ストテキ[sample_sc]"
のように、前後にほかの文字列が混ざっていたり、複数のショートコードが一つの文字列内に含まれていても大丈夫です。
実際に、do_shortcode関数
を使う場合は以下のように記述します。
add_filter('the_content', function($content){
//有効なショートコード
$add_code = '[sample_sc]';
$shortcode = do_shortcode($add_code);
return $shortcode . $content;
});
上記サンプルでは、使用中のテーマ・プラグインに[sample_sc]
というショートコードがあった場合、ショートコードが展開されて[sample_sc]
の中身が出力されます。
PHPでショートコードを実行するときはdo_shortcode関数
に渡すことを覚えておくといいでしょう。