添加后无法获取所有帖子 rest_post_query
cannot get all posts after added rest_post_query
我添加了一个 rest_post_query 喜欢
add_filter( 'rest_books_query', function( $args ) {
$args['meta_query'] = array(
array(
'key' => 'title',
'value' => esc_sql( $_GET['title'] ),
)
);
return $args;
所以像 wp-json/wp/v2/books?title=someTitle 这样的查询有效,
但我现在无法查询所有帖子,因为 wp-json/wp/v2/books 不再有效。我应该如何更改它以便它可以查询两者?谢谢
据我了解,您想使用相同的 API 路由来获取所有 post,或按标题 post。如果是这样,你可以简单地做:
add_filter( 'rest_books_query', function( $args ) {
if(isset($_GET['title'])){
//better push to meta_query array in case there is other meta_query already here
$args['meta_query'][] = [
'key' => 'title',
'value' => esc_sql( $_GET['title'] ),
];
}
return $args;
});
如果没有提供title
参数,meta_query
将不会被推送到查询参数数组。
请注意,您还可以声明一个新的 API 路由来完全满足您的要求。
我添加了一个 rest_post_query 喜欢
add_filter( 'rest_books_query', function( $args ) {
$args['meta_query'] = array(
array(
'key' => 'title',
'value' => esc_sql( $_GET['title'] ),
)
);
return $args;
所以像 wp-json/wp/v2/books?title=someTitle 这样的查询有效, 但我现在无法查询所有帖子,因为 wp-json/wp/v2/books 不再有效。我应该如何更改它以便它可以查询两者?谢谢
据我了解,您想使用相同的 API 路由来获取所有 post,或按标题 post。如果是这样,你可以简单地做:
add_filter( 'rest_books_query', function( $args ) {
if(isset($_GET['title'])){
//better push to meta_query array in case there is other meta_query already here
$args['meta_query'][] = [
'key' => 'title',
'value' => esc_sql( $_GET['title'] ),
];
}
return $args;
});
如果没有提供title
参数,meta_query
将不会被推送到查询参数数组。
请注意,您还可以声明一个新的 API 路由来完全满足您的要求。