WEB制作のための情報サイト / unazuki Library

do_shortcode()

基本構文と使い方(引数・実行結果)

基本構文

ショートコードが実行された文字列を返します。テンプレートファイル内でショートコードを呼び出したいときに使えます。

do_shortcode($content,$ignore_html)

引数

引数必須/任意引数に指定するもの
第1引数
$content
必須ショートコードのタグ名を含む文字列
渡された値からタグ名を検索して、ショートコードが存在すればその値を変換した結果を返します。
※詳しくは実行結果の例2参照。
第2引数
$ignore_html
任意HTML内のショートコードを実行しないならture、するならfalse
初期値false

実行結果

戻り値(返す値):ショートコードが実行された文字列
※表示するにはechoします。

例1.ショートコードを実行する1

例えば、下記のようにfunctions.phpで、add_shortcode()を使ってショートコードmyshortcodeが追加されているとします。

function my_text_shortcode() {
	return '<div class="my-text">ショートコードで出力するテキスト</div>';
}
add_shortcode('myshortcode', 'my_text_shortcode');

下記コードをテンプレートファイルの任意の場所に記述することで、ショートコードmyshortcodeを呼び出します。

<?php echo do_shortcode('[myshortcode]') ?>

実行した結果、以下のHTMLが出力されます。

<div class="my-text">ショートコードで出力するテキスト</div>

例2.ショートコードを実行する2

例1同様にショートコードmyshortcodeがfunctions.phpで追加されているとします。下記コード例では、第1引数の中からショートコードのタグを探し、myshortcode を実行して返ってきた文字列をsectionタグに埋め込んで返します。つまり第1引数には必ずしもタグ名だけを渡さないといけないわけではありません。渡された値からタグ名を検索して、ショートコードが存在すればそのタブ部分を変換した結果を返します。

do_shortcode('<section>[myshortcode]</section>')

実行した結果、以下のHTMLが出力されます。

<section><div class="my-text">ショートコードで出力するテキスト</div></section>

学習者向け補足情報

【引数とは】
テンプレートタグ(=関数)を実行する際に、引数を渡すことができるテンプレートタグがあります。引数は、関数の中で使われるので、渡す引数の値によって実行結果が変わってきます。何を処理したいのか、どのようなデータを取得したいのかによって渡す引数が変わります。

【引数について】

  • 指定できる引数の数はテンプレートタグによって異なります。(引数なしもあり)
  • 引数ごとに必須 / 任意が決まっています。(必須は必ず指定、任意は指定しなければ初期値)
  • 引数名(例:$post)は仕様の便宜上の名前と考えてください。(この名前自体はテンプレートタグ実行に関係しません。各引数に何を指定するのかを理解していればOKです。)

※当サイトでは初期値とデフォルト値の言葉の定義を区別せず、原則統一して初期値を採用しています。

関連するテンプレートタグ

テンプレートタグ 説明
body_class() body要素に関するclass名を表示する。
add_shortcode() 任意のショートコードを作成して追加する。
wp_body_open() アクションフックwp_body_openに登録されている関数を実行する。
wp_footer() アクションフックwp_footerに登録されている関数を実行する。
wp_head() アクションフックwp_headに登録されている関数を実行する。
get_previous_post() 現在の投稿の前の投稿情報を取得する。
get_next_post() 現在の投稿の次の投稿情報を取得する。
previous_posts_link() アーカイブページにおいて次のページリンクを表示する。
next_posts_link() アーカイブページにおいて次のページリンクを表示する。
get_next_posts_link() アーカイブページにおいて次のページリンクのHTMLを取得する。
get_previous_posts_link() アーカイブページにおいて前のページリンクのHTMLを取得する。
get_template_part() テンプレートファイルにテンプレートパーツを呼び出して実行します。