do_shortcode()
は、WordPress内でショートコードを評価・実行し、その結果を表示するためのテンプレートタグです。テーマファイルやプラグイン内で、直接ショートコードを処理する際に使われます。
機能の説明
do_shortcode()
は、ショートコードを含む文字列を解析し、該当するショートコードを実行してその出力を返します。通常、投稿やページ内のショートコードを処理しますが、PHPファイルやカスタムテンプレート内で使うときに便利です。
シンプルなコード例
echo do_shortcode('');
この例では、WordPressのギャラリーショートコードをdo_shortcode()
で処理し、その結果を表示しています。echo
で出力することで、ショートコードが評価され、画像ギャラリーが表示されます。
使い方の解説
引数
- $content
-
処理するショートコードを含む文字列。必須です。
- $ignore_html
-
ショートコードの周囲にあるHTMLタグを無視するかどうか。デフォルトは
false
。
戻り値
- string
-
ショートコードが評価された後のHTMLコンテンツ。
オプション
do_shortcode()
にはオプションのパラメータがありませんが、ショートコード自体には複数の属性を設定できます(例:[shortcode attribute="value"]
)。
使用例
function my_custom_shortcode( $atts ) {
$atts = shortcode_atts( array(
'name' => 'ゲスト',
), $atts );
return "こんにちは、" . esc_html( $atts['name'] ) . "さん!";
}
add_shortcode( 'greeting', 'my_custom_shortcode' );
echo do_shortcode('[greeting name="太郎"]');
この例では、[greeting]
というショートコードを作成しています。このショートコードを使うと、name
属性に指定した名前で挨拶文を表示します。do_shortcode()
を使ってPHPコード内でショートコードを評価し、その結果を表示します。
一緒に使うことが多い関連タグ
add_shortcode()
add_shortcode()
は、新しいショートコードを登録するためのテンプレートタグです。
使用例
add_shortcode( 'hello', function() {
return 'こんにちは、世界!';
});
echo do_shortcode('[hello]');
このコードでは、hello
というシンプルなショートコードを登録し、do_shortcode()
を使ってその出力を表示しています。
追加情報を取得したい場合
shortcode_atts()で取得できるショートコード属性
$atts = shortcode_atts( array(
'name' => 'デフォルト名',
'age' => 20,
), $atts );
出力できる情報
- name: 名前を設定します。
- age: 年齢を指定します。
想定されるトラブル
ショートコードが正しく動作しない
ショートコードの登録が正しく行われているか確認してください。add_shortcode()
が呼び出されているか確認しましょう。
HTMLがショートコードと一緒に表示されてしまう
$ignore_html
引数をtrue
に設定するか、ショートコードの出力を適切にエスケープするようにしましょう。
Q&A
まとめ
do_shortcode()
は、ショートコードをPHPファイル内で動的に評価するための便利なテンプレートタグです。add_shortcode()
と組み合わせて独自のショートコードを作成し、do_shortcode()
でその結果を表示することが一般的な使い方です。