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

最終更新 : 2020年04月02日 11:21



お勧め

プラグインのロード順を制御する(2014年6月9日 更新)

これまでプラグインがどのような順番でロードされるか意識していなかったのだが、とある自作プラグインを他のプラグインよりも先にロードさせたくなったので調べてみた。

Emojin:プラグイン作ってみました(2015年3月21日 更新)

ちょっと前のTLでiOSの絵文字を含んだ投稿を保存すると、絵文字以降の文章がすべて消えた状態で保存されるといったツイートを見かけた。少し検索してみると、MySQLのデータベースの文字セットが「utf8」の場合、iOSの絵文字のような4バイトの文字を正常に保存できず、それ以降の文章も保存されないというものらしい。対処方法としてデータベースの文字セットを「utf8mb4」に変更するのが有効らしいのだが、他に回避策がないか考えてみた。

Contact Form 7に確認フェーズを(2012年12月16日 更新)

Contact Form 7はWordPressによるサイト製作でお世話になることが多いプラグインの1つ。ただ、クライアント様によっては、入力、確認、送信の3フェーズにしたいという要望があり、そんな時は別の方法を採用していたのですが、JavaScript(jQuery)を使ってページ遷移しなくてもいいなら確認フェーズは用意できるかなと思い、作り込んでみた。

プラグインのヘッダー情報を国際化対応しよう(2018年5月27日 更新)

バージョン4.8がリリースされてひと段落。あらためてプラグイン一覧ページを見てみると「Akismet」が「Akismet Anti-Spam (アンチスパム)」と表示されていた。説明文だけじゃなくプラグイン名も国際化対応できたのね。

メタボックスをクラシックエディターのみで表示する(2019年1月15日 更新)

投稿画面向けにメタボックスを使ったプラグインがあり、それがブロックエディターで意図した通りに機能しなかった。この対処方法を考える過程でエディタータイプに応じてメタボックスを出し分けできる方法が見つかったので紹介したい。