• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/get shortcode regex

提供: WordPress Codex 日本語版
移動先: 案内検索

この項目「関数リファレンス/get shortcode regex」は、翻訳チェック待ちの項目です。加筆、訂正などを通して、Codex ドキュメンテーションにご協力下さい。

投稿に含まれるショートコードを検索するための正規表現を返します。

この関数はすべての登録済みショートコードタグをひとつの正規表現に結合します。

使い方

<?php
function your_prefix_detect_shortcode()
{
    global $post;
    $pattern = get_shortcode_regex();

    if (   preg_match_all( '/'. $pattern .'/s', $post->post_content, $matches )
        && array_key_exists( 2, $matches )
        && in_array( 'your-shortcode', $matches[2] ) )
    {
        // shortcode is being used
    }
}
add_action( 'wp', 'your_prefix_detect_shortcode' );
?>

これは $post が利用可能な時だけ使えるコードです。フックの中で使うなら 'wp' 以降のアクションで使えます。

参考: 以前のこのページに記載されていた例は preg_match_all() の代わりに used preg_match() を使っていました。そのためページ内で最初に使われたショートコードだけを検出していました。このバグを直すには上記のコードへ更新してください。

次のコードは最初の例を少し変えたもので、インデックスページのすべての投稿を検索できます。

function your_prefix_detect_shortcode()
{
    global $wp_query;	
    $posts = $wp_query->posts;
    $pattern = get_shortcode_regex();

    foreach ($posts as $post){
		if (   preg_match_all( '/'. $pattern .'/s', $post->post_content, $matches )
			&& array_key_exists( 2, $matches )
			&& in_array( 'videoannotation', $matches[2] ) )
		{
			// enque my css and js
			break;	
		}    
    }
}
add_action( 'wp', 'your_prefix_detect_shortcode' );

パラメータ

ありません。

戻り値

(文字列) 
ショートコードを検索する正規表現。

変更履歴

新規導入: 2.5

ソースファイル

get_shortcode_regex()wp-includes/shortcodes.php にあります。


ショートコード: do_shortcode(), add_shortcode(), remove_shortcode(), remove_all_shortcodes(), shortcode_atts(), strip_shortcodes() /en, shortcode_exists(), has_shortcode(), get_shortcode_regex() /en, wp_audio_shortcode(), wp_video_shortcode(), フック no_texturize_shortcodes /en


関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function Reference/get_search_query最新版との差分