我正在尝试以这种方式从另一个函数调用add_action:
使用此:
$this->add_action('most-rated', 'get_most_rated');
代替此:
add_action('rest_api_init', function () {
register_rest_route('app-api', 'most-rated', [
'methods' => 'GET',
'callback' => [$this, 'get_most_rated'],
]);
}, 10);
其中add_action为:
public function add_action($route, $endpoint, $request = 'GET') {
add_action('rest_api_init', function () {
register_rest_route('app-api', $route, [
'methods' => $request,
'callback' => [$this, $endpoint],
]);
}, 10);
}
该代码正在运行,并且由于仍在调用该代码而没有发送任何错误,但未添加EndPoint。
我做错了什么吗?
答案 0 :(得分:0)
$route
,$endpoint
和$request
不在匿名函数的范围内,您可以添加一个use
语句以在函数内部访问它们。
public function add_action($route, $endpoint, $request = 'GET') {
add_action('rest_api_init', function () use ($route, $endpoint, $request) {
register_rest_route('app-api', $route, [
'methods' => $request,
'callback' => [$this, $endpoint],
]);
}, 10);
}