Wordpress:has_shortcode() - 如何检测嵌套的短代码

时间:2013-12-18 11:36:42

标签: php wordpress

我正在使用has_shortcode()来检测短代码,它可以正常工作但根本不可用。如果我将此指定的短代码放在另一个短代码中,则has_shortcode()函数将停止工作。

has_shortcode( $post->post_content, 'slider' )

例如:

[2col] //left column
[slider]
[2col_next] //right column
[slider]
[/2col]

has_shortcode()功能在这种情况下不起作用,但如果我使用[slider]短代码而不使用[2col],则效果很好。这是指每个短代码。我很确定我的短代码没什么问题。

1 个答案:

答案 0 :(得分:2)

刚才正在寻找解决方案。如果其他人还在寻找它,那么它已在这里得到解答:

https://wordpress.stackexchange.com/questions/126563/has-shortcode-how-to-detect-nested-shortcode

上述链接的翻译如果被破坏则重写:

    function is_shortcode_active() {
        global $post;

        if ( strpos( $post->post_content, '[shortcode' ) ) {
            return true;
        }

        return false;
    }

我从原来的链接答案中稍微改了一下。我刚刚使用了$post对象而不是其他函数,我还在开始括号后删除了/并完全离开了结束括号。离开结束括号的原因是为了找到一个用户可能已添加属性的短代码 - 如果]在那里,那么在这些情况下它将不匹配。