3

WP では、文字列からショートコードをフィルタリングし、フックされた関数を で実行できますdo_shortcode($string)

登録されているすべてのショートコードではなく、単一のショートコードをフィルタリングすることはできますか?

たとえば、コメント投稿者にもいくつかのショートコードを使用できるようにする必要がありますが、明らかな理由ですべてではありません:)

4

1 に答える 1

2
function do_shortcode_by_tags($content, $tags)
{
    global $shortcode_tags;
    $_tags = $shortcode_tags; // store temp copy
    foreach ($_tags as $tag => $callback) {
        if (!in_array($tag, $tags)) // filter unwanted shortcode
            unset($shortcode_tags[$tag]);
    }

    $shortcoded = do_shortcode($content);
    $shortcode_tags = $_tags; // put all shortcode back
    return $shortcoded;
}

これは、グローバルをフィルタリングし$shortcode_tags、実行してdo_shortcode()から、すべてを以前の状態に戻すことで機能します。

使用例;

$comment = do_shortcode_by_tags($comment, array('tag_1', 'tag_2'));

tag_1これにより、ショートコードとコメントが適用されますtag_2

于 2010-07-07T08:33:58.920 に答える