我正在使用has_shortcode()
来检测短代码,它可以正常工作但根本不可用。如果我将此指定的短代码放在另一个短代码中,则has_shortcode()
函数将停止工作。
has_shortcode( $post->post_content, 'slider' )
例如:
[2col] //left column
[slider]
[2col_next] //right column
[slider]
[/2col]
has_shortcode()
功能在这种情况下不起作用,但如果我使用[slider]
短代码而不使用[2col]
,则效果很好。这是指每个短代码。我很确定我的短代码没什么问题。
答案 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
对象而不是其他函数,我还在开始括号后删除了/
并完全离开了结束括号。离开结束括号的原因是为了找到一个用户可能已添加属性的短代码 - 如果]
在那里,那么在这些情况下它将不匹配。