我有这段代码向有付费订阅的用户显示内容:
echo do_shortcode('[ihc-hide-content ihc_mb_who="5,7"] MY CONTENT HERE [/ihc-hide-content])
但是我想在此短代码中显示“我的内容在这里”,这是一个逻辑函数,如下所示:
if ( $a = $b ) { echo ($c); }
有可能以某种方式做到这一点吗? 附言我做了另一个简码,然后像这样把他放进去:
do_shortcode('[ihc-hide-content ihc_mb_who="5,7"].do_shortcode('[my_shortcode]').[/ihc-hide-content])
但是第一个简码不是隐藏第二个简码的内容。 我们将不胜感激,对于我的英语不好对不起!
答案 0 :(得分:1)
如果您使用的是Enclosing Shortcode,则应该能够将简码作为字符串添加到do_shortcode()
函数中。 do_shortcode()
将搜索传递给它的内容,并解析出它能够提供的所有短代码。根据如何设置ihc-hide-content
短代码,它 可能无法正常工作,但是您也可以解决该问题。
首先,我将尝试向其中传递一个短代码字符串:
do_shortcode( '[ihc-hide-content ihc_mb_who="5,7"][my_shortcode][/ihc-hide-content]' );
如果这不起作用(老实说,它应该)-您可以尝试将my_shortcode
的输出生成为Output Buffer,如下所示:
// Turn on Output Buffering
ob_start();
// Output your shortcode
do_shortcode( '[my_shortcode]' );
// Turn off Output Buffering, and grab the content as a variable
$my_shortcode_output = ob_get_clean();
// Pass that complete output to the other shortcode
do_shortcode( '[ihc-hide-content ihc_mb_who="5,7"]'. $my_shortcode_output .'[/ihc-hide-content]' );