説明
do_shortcode() は、文字列中のショートコードを実行して置き換える関数です。
基本構文
do_shortcode( string $content, bool $ignore_html = false ): string
引数
$content:ショートコードを含む文字列$ignore_html:HTMLタグ内のショートコードを無視するか
戻り値
展開後の文字列。
使い方(サンプル)
echo do_shortcode( '[hello name="Taro"]' );
注意点
- テンプレートの中でショートコードを実行したいときに使います。
実務での使いどころ
- PHPのテンプレートから、ショートコードを、呼び出すとき。
- ウィジェットや、独自のフィールドの文字列の中の、ショートコードを、展開するとき。
よくあるミスと対処
the_contentで出力する本文には、すでに、ショートコードが展開される。二重に呼ぶ必要はない。- ユーザーが入力した、信頼できない文字列に、使っている。任意のショートコードが、実行される。
- 結果を、エスケープせずに、出力している。ショートコードの結果は、HTMLを含むため、信頼できる内容に限る。
NG例
echo do_shortcode( $_GET['sc'] ); // 入力された、任意のショートコードが実行される
OK例
echo do_shortcode( '[hello name="太郎"]' );
使い分け早見表
| 関数 | 役割 |
|---|---|
do_shortcode() |
文字列の中の、ショートコードを、実行する |
add_shortcode() |
ショートコードを、登録する |
has_shortcode() |
文字列に、ショートコードが含まれるかを確認する |
関連項目
add_shortcode()、shortcode_atts()
公式リファレンス:do_shortcode() | Function | WordPress Developer Resources

コメント