我想使用以下两个查询参数在Wp网站中创建自定义路由:
http://www.mywebsite.com/apin/?code=CODE&f=getInfo
或http://www.mywebsite.com/apin/?code=CODE&f=getCategories
我用以下方法创建了一个自定义插件:
add_action( 'rest_api_init', 'getMovieInfo' );
function getMovieInfo() {
register_rest_route( 'apin', '/?token=(?P<token>[a-f0-9]+)&f=getInfoApp', array(
'methods' => 'GET',
'callback' => 'get_movie_info',
)
);
}
function get_movie_info($datas) {
$posts = get_posts(array(
'post_type' => 'movies'));
foreach($posts as $post) {
$fields = get_fields($post->ID);
$code = $fields['movie_code'];
if ($code === $datas['movie_code']) {
$data=[];
$data['movie_title'] = $post->post_title;
$data['movie_description'] = $fields['movie_description'];
$data['movie_categories'] = $fields['movie_categories'];
$data['movie_image'] = $fields['movie_image']['url'];
return $data;
} else {
return "No matching results";
}
}
}
但是我不知道如何正确使用命名空间以及如何为不同的查询参数创建不同的方法(我需要根据'&f = METHOD使用其代码检索特定电影并返回其字段的不同结果”,例如“ getInfo”或“ getCategories”)