我试图将一个变量值传递给shortcode属性。我不能让它工作。
以下是应该起作用的,还是值必须是文字?
$mycat = \'books\';
$myshortcode = \'[products category="\'.$mycat .\'"]\';
echo do_shortcode($myshortcode);
以上没有输出任何内容。如果我将其替换为
$myshortcode = \'[products category="books"]\';
echo do_shortcode($myshortcode);
然后生成预期结果。
我将此代码放置在HeadWay主题的可视化编辑器中的“自定义代码块”中。我试图找出我的问题是否与HeadWay解析自定义代码块内容的方式有关,或者是否确实不可能构造一个字符串用于do_shortcode()
像这样。
最合适的回答,由SO网友:mikkelbreum 整理而成
经过进一步探索,我发现问题一定出在HeadWay解析自定义代码块内容的方式上。
我仍然不能完全理解,但更改代码如下:
$mycat = \'books\';
$myshortcode = \'[products category="\'.$mycat .\'"]\';
echo do_shortcode($myshortcode);
到这个
$mycat = \'books\';
$myshortcode = \'products category="\'.$mycat .\'"\';
$myshortcode = \'[\' . $myshortcode . \']\';
echo do_shortcode($myshortcode);
让它工作。。。