我正在尝试调用使用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'...为什么?
答案 0 :(得分:2)
动作挂钩不会返回内容,老实说,如果您需要action hook
返回content
,那么您很可能会做错事。
在您的情况下,
add_action()
会识别函数bleute_utbi_service_type()
,并将其放入要调用的函数列表中 只要有人打电话do_action()
。
将$params
与do_action
和add_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();
希望它适合你:)