任意のショートコードを作成して追加します。
add_shortcode($tag,$callback);| 引数 | 必須/任意 | 引数に指定するもの |
|---|---|---|
| 第1引数 $tag | 必須 | ショートコードのタグ名(文字列) |
| 第2引数 $callback | 必須 | ショートコードが呼び出されたときに実行するコールバック関数の名前(文字列)このコールバック関数には3つのパラメーターを渡すことができます。 $atts ショートコード実行時に指定された「属性名と値」が連想配列で渡します$content ショートコードのコンテンツが渡します(ショートコードの開始タグと終了タグで囲まれている値)$shortcode_tag ショートコードのタグ名自体を渡しますなお、コールバック関数は実行結果を文字列として返す必要があります。(コールバック関数の中でechoしません) |
ショートコードを追加します。
追加したショートコードはブロックエディタから埋め込むことができます。テンプレートファイルの中で実行したい場合は、do_shortcode()を使います。
下記の例では、定型テキストのみを返すショートコードの例です。
function my_text_shortcode() {
return '<div class="my-text">ショートコードで出力するテキスト</div>';
}
add_shortcode('mytext', 'my_text_shortcode');上記で作成したショートコードを実行します。
[mytext]結果:ショートコードで出力するテキスト
下記の例ではショートコード実行時にurlとtext属性を指定できます。
function my_button_shortcode( $atts ) {
$atts = shortcode_atts(
[
'url' => '#', // 初期値
'text' => '詳しく見る', // 初期値
],
$atts, // ショートコードで渡された属性の配列(なければ初期値が使われる)
'button'
);
return '<a href="' . esc_url( $atts['url'] ) . '" class="button">'
. esc_html( $atts['text'] )
. '</a>';
}
add_shortcode( 'button', 'my_button_shortcode' );
上記で作成したショートコードを実行します。下記ではurlとtext属性を指定しています。
[button url="https://example.com" text="公式サイトへ"]結果は以下です。
<a href="https://example.com" class="button">公式サイトへ</a>function my_button_shortcode( $atts, $content = '' ) {
$atts = shortcode_atts(
[
'url' => '#', // 初期値
],
$atts, // ショートコードで渡された属性の配列(なければ初期値が使われる)
'button'
);
return '<a href="' . esc_url( $atts['url'] ) . '" class="button">'
. esc_html( $content )
. '</a>';
}
add_shortcode( 'button', 'my_button_shortcode' );
上記で作成したショートコードを実行します。
[button url="https://example.com"]公式サイトへ[/button]結果は以下です。
<a href="https://example.com" class="button">公式サイトへ</a>【引数とは】
テンプレートタグ(=関数)を実行する際に、引数を渡すことができるテンプレートタグがあります。引数は、関数の中で使われるので、渡す引数の値によって実行結果が変わってきます。何を処理したいのか、どのようなデータを取得したいのかによって渡す引数が変わります。
【引数について】
※当サイトでは初期値とデフォルト値の言葉の定義を区別せず、原則統一して初期値を採用しています。