我有这个功能:
<?php myWidget() { ?>
<div id="<?php echo $args['widget_id']; ?>">
<p>Something</p>
</div>
<?php } ?>
(widget_id是Wordpress的核心功能,所以我没有直接访问它,只是简单地生成小部件名称)
我想将我的小部件添加为短代码,以便创建另一个函数:
function myWidget_shortcode( $atts ) {
extract( shortcode_atts( array(
/* attributes here */
), $atts ) );
ob_start();
the_widget(myWidget);
return ob_get_clean();
}
the_widget只是简单地调用名为myWidget的小部件。
关键是,一切正常,但当我使用第二个代码时,id =“”总是空的。
我知道这是一个Wordpress问题,但我相信这更多地与我的PHP代码有关。
有什么想法吗?
答案 0 :(得分:0)
根据你上次的评论判断,问题是$ args没有设置,因为ID是从$ args设置的,它会“”。
您必须找出$ args的设置位置,并确保该部件已运行或将其设置为自己。
在这种情况下,$ args不是myWidget方法的参数,而是全局数组。检查它是否存在
isset($args)
答案 1 :(得分:0)
我的猜测是它的范围问题。 $args
不在函数内部。尝试将其传递给函数