如果变量中包含短码,DO_SHORTCODE()不起作用;如果短码作为字符串传递,则起作用

时间:2012-10-17 作者:Pizaul

我正在开发一个插件,其中的一个功能是通过更改自定义字段中的快捷码来切换特定页面上的表单。

在我的插件文件中:

function getShort()
{
    global $post;
    $m = get_post_meta($post->ID, \'short\', true);
    return $m;
}
在我的主题文件中:

$short = getShort();
echo do_shortcode($short);
使用上面的代码,它只打印出短代码。如果我回显$short的值,复制并粘贴该值作为do\\u shortcode()的参数,它会打印出预期的值。

我完全相信$short的值是一个字符串,是格式正确的短代码。你知道为什么这样不行吗?

2 个回复
SO网友:Radu Dragomir

确保字符串$short 变量介于方形制动器之间,如[header]. 如果不是那样存储的,就这样打电话echo do_shortcode(\'[\'.$short.\']\');

SO网友:ndm

尽管您确信事实并非如此,但听起来您手动传递的值与$short.

转储的内容$short (var_dump($short);) 看看source 创建的页面!变量很可能包含在渲染浏览器视图中不可见的标记或其他字符。

结束

相关推荐

no content after shortcode

我希望你们能帮我解决我遇到的这个小错误。我正在使用一个快捷码在条目中显示音频播放器。这是我在函数中输入的代码。php:function html5_audio($atts, $content = null) { extract(shortcode_atts(array( \"src\" => \'\', \"preload\"=> \'none\', \"loop\" => \'\' ), $atts)); retu