使用Add_action进行Hook Do-action

时间:2016-08-22 09:46:12

标签: php wordpress hook

我正在尝试调用使用add_action创建do_action的函数:

在主题的function.php中:

function bleute_utbi_service_type()
{

 return "service";
}

add_action('utbi_service_type', 'bleute_utbi_service_type');

现在,我需要在插件文件中获取该函数的值:

//'x'插件文件:

function get_valor(){

$val = do_action('utbi_service_type');
echo "this is the valor:" . $val";

}

这种做法不起作用,$val返回'null'...为什么?

2 个答案:

答案 0 :(得分:2)

动作挂钩不会返回内容,老实说,如果您需要action hook返回content,那么您很可能会做错事。

  在您的情况下,

add_action()会识别函数   bleute_utbi_service_type(),并将其放入要调用的函数列表中   只要有人打电话do_action()

$paramsdo_actionadd_action一起使用,然后在$value回调函数中设置add_action或使用filters返回内容。要了解返回如何与filters一起使用,您可以在此处参考:Wordpress: How to return value when use add_filter?https://developer.wordpress.org/reference/functions/add_filter/

答案 1 :(得分:0)

如果你想用add_action做,那么你必须通过将参数传递给add_action来遵循这个参考 Reference

否则尝试使用像这样的应用过滤器。

在function.php中添加以上代码:

function example_callback( $string ) {
    return $string;
}
add_filter( 'example_filter', 'example_callback', 10, 1 );

function get_valor(){
    $val = apply_filters( 'example_filter', 'filter me' );
    echo "this is the valor:". $val; 
}

并将以下代码添加到您要打印的位置:

get_valor();

希望它适合你:)