MENU

do_shortcode()– Function –

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コードを実行できますか?

可能ですが、セキュリティ上の懸念があるため、慎重に取り扱う必要があります。

まとめ

do_shortcode()は、ショートコードをPHPファイル内で動的に評価するための便利なテンプレートタグです。add_shortcode()と組み合わせて独自のショートコードを作成し、do_shortcode()でその結果を表示することが一般的な使い方です。

カスタマイズ例

1