PHP Widget and do_shortcode

时间:2012-07-13 作者:Anagio

我正在使用PHP小部件,它允许PHP代码从小部件执行。我尝试使用此代码执行do\\u shortcode,但它没有呈现

<?php 
$lat = get_field(\'woo_maps_lat\');
$long = get_field(\'woo_maps_long\');
echo do_shortcode(\'[forecast location="\' . $lat .\',\'.$long. \'" measurement=\\\'C\\\']\');        
?>
如果我用\'echo$lat;\'简单地回显变量它起作用了。因此PHP小部件工作正常。问题是回显小部件中的短代码。我可以将shortcoded添加到小部件中,但我需要能够将php变量添加到它们所在的位置。

我尝试添加add_filter(\'widget_text\', \'do_shortcode\'); 我的职能。php,但仍无法正确呈现。有什么建议吗?

谢谢

1 个回复
最合适的回答,由SO网友:Anagio 整理而成

问题是,在帖子和页面中使用正常的短代码时,由于某种原因,在使用do\\u短代码时,需要使用双引号。在破坏函数的属性中使用双引号。以下工作代码

<div>
<?php 
$lat = get_field(\'woo_maps_lat\');
$long = get_field(\'woo_maps_long\');
echo do_shortcode(\'[forecast location=\' . $lat .\',\'.$long. \']\');        
?>
</div>

结束

相关推荐

Shortcode Strategy

我希望将另一个数据库中的数据插入到我的帖子中,并考虑使用短代码。示例帖子:[imdb id=\"123\" name] was born [imdb id=\"123\" birthday] in [imdb id=\"123\" birth_location]. 我想缓存结果,一旦检索到,就不需要再运行短代码操作了。有没有什么好的策略可以让这种事情更有效率?