访问函数参数在不同的函数?

时间:2011-03-02 14:15:27

标签: php function attributes arguments

我有这个功能:

<?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代码有关。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

根据你上次的评论判断,问题是$ args没有设置,因为ID是从$ args设置的,它会“”。

您必须找出$ args的设置位置,并确保该部件已运行或将其设置为自己。

在这种情况下,$ args不是myWidget方法的参数,而是全局数组。

检查它是否存在

isset($args)

答案 1 :(得分:0)

我的猜测是它的范围问题。 $args不在函数内部。尝试将其传递给函数