MENU

add_shortcode()– Function –

add_shortcode()は、WordPressでショートコードを登録するためのテンプレートタグです。ユーザーが投稿やページで簡単にカスタムコンテンツを挿入できるようにします。

目次

機能の説明

add_shortcode()は、特定のショートコードを登録し、そのショートコードが呼ばれた際に実行する関数を紐づけます。これにより、WordPressの投稿やページで短いコードを記述するだけで複雑な処理やHTMLを表示することが可能です。

シンプルなコード例

function hello_world_shortcode() {  
    return '<p>Hello, World!</p>';  
}  
add_shortcode('hello', 'hello_world_shortcode');

この例では、[hello]というショートコードを使うと「Hello, World!」というテキストが表示されます。

使い方の解説

add_shortcode()を使うことで、ショートコード名と実行する関数を紐づけます。関数の戻り値がショートコードの出力として表示されるため、HTMLや他のデータを簡単に投稿やページに挿入できます。

引数

$tag

ショートコードの名前を指定します。投稿やページに[shortcode_name]の形式で記述します。

$callback

ショートコードが呼ばれた際に実行する関数名を指定します。関数は文字列を返す必要があります。

戻り値

成功時

true (ショートコードが正常に登録された場合)

失敗時

false (ショートコードの登録に失敗した場合)

オプション

add_shortcode()自体にはオプションはありませんが、紐づける関数で引数を受け取ることができます。

ショートコード引数の例

function custom_message_shortcode($atts) {  
    $atts = shortcode_atts(array(  
        'message' => 'デフォルトのメッセージ'  
    ), $atts);  
    return '<p>' . esc_html($atts['message']) . '</p>';  
}  
add_shortcode('message', 'custom_message_shortcode');

[message message="こんにちは"]と記述することで、「こんにちは」というテキストが表示されます。

使用例

function alert_box_shortcode($atts) {  
    $atts = shortcode_atts(array(  
        'type' => 'info',  
        'text' => 'これは通知です。'  
    ), $atts);  
    return '<div class="alert ' . esc_attr($atts['type']) . '">' . esc_html($atts['text']) . '</div>';  
}  
add_shortcode('alert', 'alert_box_shortcode');

このコードでは、[alert type="warning" text="警告です!"]と記述することで、警告の通知ボックスが表示されます。

一緒に使うことが多い関連タグ

do_shortcode()

do_shortcode()は、PHPコード内でショートコードを実行するために使用されます。

echo do_shortcode('[hello]');

このコードでは、[hello]というショートコードがPHP内で実行され、Hello, World!が表示されます。

shortcode_atts()

shortcode_atts()は、ショートコードのデフォルト引数を設定するために使われます。これにより、引数が未指定の場合にデフォルト値が適用されます。

追加情報を取得したい場合

add_shortcode()でショートコードを作成する際、do_shortcode()を使うことでテーマファイル内でもショートコードを実行することが可能です。

do_shortcode() で取得できる情報

$content = do_shortcode('[message message="こんにちは"]');  
echo $content;

出力できる情報

  • HTML: ショートコードが返すHTMLコンテンツ
  • 変数の値: ショートコードに渡した引数の値

想定されるトラブル

ショートコードが表示されない

ショートコードの登録が正しく行われていない。

解決策

add_shortcode()の記述が正しいか確認してください。

引数が適用されない

shortcode_atts()が正しく使用されていないか、引数名が間違っている。

解決策

引数名が一致しているか確認し、shortcode_atts()でデフォルト値を設定しましょう。

Q&A

ショートコード内でPHPの変数を使えますか?

はい、可能です。関数内でグローバル変数を利用するか、引数として値を渡します。

複数のショートコードを一つの関数にまとめることはできますか?

可能ですが、関数内で$tag引数をチェックし、処理を分岐させる必要があります。

まとめ

add_shortcode()は、WordPressでカスタムショートコードを登録し、投稿やページ内で簡単に再利用可能なコンテンツを表示するための強力なツールです。複数の引数を持たせたり、do_shortcode()と組み合わせることで柔軟な実装が可能です。

カスタマイズ例

1