do_shortcode

(2.5.0以降)
do_shortcode - ショートコードを変換する

説明

string function do_shortcode( string $content [ , bool $ignore_html = false ] )
文字列に含まれるショートコードを変換する。

パラメータ

  • $content
    投稿記事などの文字列。
  • $ignore_html
    [4.2.3]HTML要素内のショートコードを実行しない場合はtrueを、実行する場合はfalseを指定(省略時はfalse)。

返り値

ショートコードが変換された文字列を返す。

注意

このdo_shortcode関数は、the_content関数のフィルターとして使用されており、投稿記事を表示する際に自動的に実行されている。ショートコードは投稿記事以外でも使用でき、add_filter関数を使用するか、テーマやプラグイン内で実行することで、任意の文字列を対象にショートコードを変換することができる。

また囲み型ショートコードでそのコンテントの中にショートコードを含める(ショーコードが入れ子になる)場合には、ショートコード関数の返り値を返す直前で本関数を呼び出す。

function shortcode_example_func( $atts, $content='' ) {

	// $contentを適宜処理

	return do_shortcode( $content );
}
add_shortcode( 'exp', 'shortcode_example_func' );

[4.2.3]HTML要素(コメントを除く)内のショートコードを先に実行する。
[4.2.3]ショートコードの実行結果を返す前に無効なショートコードのアンエスケープ処理を行う。

使用例

  • ショートコードを変換する。
    <?php $decoded = do_shortcode( $content ); ?>

フィルター

実行するフィルターはありません。

アクション

実行するアクションはありません。

ソースファイル

/wp-includes/shortcodes.php

関連

お勧めコンテンツ

投稿ページにキーワード検索ウィジェットを追加する(2012年6月2日 登録)

「投稿の編集」ページで記事を編集していると、関連する投稿記事を検索したくなることがある。そんな時、「投稿一覧」ページに戻って「キーワード検索」を行えばいいのだが、そのひと手間がちょっとだけ煩わしい。

親子の固定ページで同じテンプレートを使う(2013年3月20日 登録)

固定ページのテンプレートファイルは「page.php」か、ページ名(スラッグ)または投稿IDを指定したテンプレートファイルになる。固定ページでページデザインが数パターンある場合、通常は「page.php」で振り分けることになるが、もう少しスマートにできないか考えてみた。

子カテゴリのアーカイブページを親カテゴリ用のテンプレートファイルで表示しよう(2011年12月8日 登録)

少し前に投稿した「適切なテンプレートファイルを用意してテンプレート内の振り分け処理を無くす」で説明した通り、特定のカテゴリ専用のテンプレートとしてcategory-○○.phpを用意することで、category.phpやarchive.php内で振り分けを行う必要がなくなる。ただ、すべてのカテゴリ分を用意するのは効率的ではないし、特に子カテゴリについては親カテゴリと共通内容になるケースが多いのではないだろうか。ここでは、子カテゴリの個別テンプレートファイルを作らず、親カテゴリのテンプレートを利用する方法を紹介する。

投稿内容に応じてwpautopを制御する(2013年8月13日 登録)

投稿内容を表示するthe_content関数では、wpautop関数がフィルターの1つとして呼び出され、改行をbrタグに変換したり、pタグで調整したりする。この機能自体は便利なのだが、きちんとデザインされたHTMLソースを流し込んだ場合はこの機能は好ましくない。そんなわけで、記事内容に応じてwpautop関数を制御できないか考えてみた。

xmlrpc.phpへのアクセスについてちょっと考えた(2015年7月10日 登録)

少し前のことですが、こちらのサーバーを何度かダウンさせてしまったのですが、その原因はxmlrpc.phpへアクセスが集中したことによってサーバーが過負荷となってしまったというものでした。すぐにサーバー性能を上げることはできないため、xmlrpc.phpのアクセスを全部拒否するという暫定対応してしまいました。

最終更新日時 : 2015-07-25 09:45