任何方式让Wordpress只从add_action返回一个do_action

时间:2014-10-21 19:27:53

标签: php wordpress

我对add_actiondo_action的工作方式感到困惑,我在Wordpress的Function_Reference页面上做了一些研究,但仍然遇到问题让它发挥作用。 add_actiondo_action位于服务器的不同页面上。

$ref = '12323123213';

add_action('add_ref','add_ref_function',10,1);

function add_ref_function ( $ref ) {
   echo '<h2>Ref: ' . $ref . '</h2>';
}

do_action('add_ref');

3 个答案:

答案 0 :(得分:1)

我知道这已经很老了,但也许我的解决方案会对某人有所帮助。

function print_ref(){
    $ref = '12323123213';
    return $ref;
}

add_action('add_ref','add_ref_function');
function add_ref_function() {
   echo '<h2>Ref: '. print_ref() .'</h2>';
}

do_action('add_ref');

答案 1 :(得分:0)

add_action()在您的情况add_ref_function中获取函数的标识,并在任何人调用do_action()时将其放入要调用的函数列表中。

它基本上将您的函数注册为回调。然后,稍后,只要WordPress的任何部分调用do_action('add_ref'),只需一个参数即可以优先级10调用您的函数。

这使您可以在代码中执行各种操作。例如,如果您使用do_action('init',myfunction,10,1),则可以在WordPress完成初始化其核心内的所有内容后立即调用您的函数。例如,这非常适合初始化插件或主题中的某些内容。

答案 2 :(得分:0)

do_action使用add_action调用与其关联的所有函数。在您的示例中,值$ ref不会被用作输入参数,除非您将其添加到do_action调用中:

do_action( 'add_ref', $ref );