在搜索模板内的Add_action中传递参数

时间:2013-08-02 作者:Stanislau Ladutska

我试图向函数传递一个参数。但它不会传播。var\\u转储生成

string\'\' (length = 0)

我做错了什么?

$map_vars = \'Test\';

function map_data($data) {
    var_dump($data);
}

add_action(\'wp_footer\', \'map_data\', 10, 1);
do_action( \'map_data\', $map_vars );

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

页脚不在全局上下文中运行,因此变量$map_vars 不在正确的范围内。

要使变量和回调保持在同一范围内,可以使用类:

class Map_Var_Example
{
    public static $map_vars;

    public static function map_data()
    {
        var_dump( self::$map_vars );
    }
}

Map_Var_Example::$map_vars = \'Test\';

add_action( \'wp_footer\', array( \'Map_Var_Example\', \'map_data\' ), 10, 1 );

SO网友:Krzysiek Dróżdż

我认为你误解了动作和钩子。

您的代码输出空字符串,因为您要做的是:

创建一个带有1个参数和var_dump就是这样wp_footer 钩这个钩子没有任何参数,所以WordPress在do_action(\'wp_footer\'); 没有任何参数do_action(\'map_data\') 使用一些参数,但您从未为此挂钩分配过任何函数。它也不是默认的WordPress挂钩,因此没有为挂钩分配任何函数map_data. 因此什么都不会发生

结束

相关推荐

Custom Post Row Actions

我偶然发现this question 在写这个问题的时候。我有一个问题是关于这个问题的。我发现你用的是get_delete_post_link 筛选为我的操作创建一个新的url(或一个类似的函数——在任何情况下,我都会将该函数与布尔值一起使用)。唯一的问题是,I don\'t know how to capture the event now. 考虑到我在谷歌上找不到很多关于行后操作的例子,我将不胜感激-/public function _wp_filter_get_delete_post_link( $