我正在尝试使用WP REST API从多个帖子类型中检索帖子。通过这样做,我可以从一个帖子类型book
获取Feed:
http://example.com/wp-json/posts?type=book&filter[posts_per_page]=10
现在我想将Feed扩展为book
和movie
。这只给了我最后指定的类型:
http://example.com/wp-json/posts?type=book&type=movie&filter[posts_per_page]=10
这给了我一个错误:
http://example.com/wp-json/posts?type[]=book&type[]=movie&filter[posts_per_page]=10
我该如何处理?
谢谢!
编辑:修复了与我实际拥有的语法相匹配的语法。以下是使用此语法http://example.com/wp-json/posts?type[]=book&type[]=movie&filter[posts_per_page]=10
时收到的错误:
警告:urlencode()期望参数1为字符串,数组在第4128行的/home/newbreak/public_html/wp-includes/formatting.php中给出
警告:无法修改标题信息 - 已在/ home / newbreak / public_html / wp-content / plugins / json中发送的标题(在/home/newbreak/public_html/wp-includes/formatting.php:4128中开始输出)第587行-rest-api / lib / class-wp-json-server.php
警告:无法修改标题信息 - 已在/ home / newbreak / public_html / wp-content / plugins / json中发送的标题(在/home/newbreak/public_html/wp-includes/formatting.php:4128中开始输出)第587行-rest-api / lib / class-wp-json-server.php
警告:无法修改标题信息 - 已在/ home / newbreak / public_html / wp-content / plugins / json中发送的标题(在/home/newbreak/public_html/wp-includes/formatting.php:4128中开始输出)第587行-rest-api / lib / class-wp-json-server.php
警告:无法修改标题信息 - 已在/ home / newbreak / public_html / wp-content / plugins / json中发送的标题(在/home/newbreak/public_html/wp-includes/formatting.php:4128中开始输出)第587行-rest-api / lib / class-wp-json-server.php
警告:无法修改标题信息 - 已在/ home / newbreak / public_html / wp-content / plugins / json中发送的标题(在/home/newbreak/public_html/wp-includes/formatting.php:4128中开始输出)第587行-rest-api / lib / class-wp-json-server.php
警告:无法修改标题信息 - 已在/ home / newbreak / public_html / wp-content / plugins / json中发送的标题(在/home/newbreak/public_html/wp-includes/formatting.php:4128中开始输出)第587行-rest-api / lib / class-wp-json-server.php
我只在将类型作为数组type[]
发送时才会收到错误。
答案 0 :(得分:4)
您还可以尝试注册其他端点,这样您就不必在每个请求中添加任意数量的查询参数。我使用的是最新版本的WP REST API插件。
因此,对于名为"电影"的自定义内容类型,您可以拥有类似wp-json/wp/v2/movies
的端点
add_action('rest_api_init', 'register_movies');
function register_movies() {
$movies_custom_fields = array(
'director',
'genre'
);
foreach ($movies_custom_fields as $key) {
register_rest_field('movies', $key, array(
'schema' => null,
'get_callback' => 'get_movies_data',
));
}
}
function get_movies_data( $object, $field_name, $request ) {
return get_post_meta( $object[ 'id' ], $field_name, true );
}
有关在WP REST API V2 documentation网站为不同内容类型添加自定义端点的更多文档。
答案 1 :(得分:2)
我们有类似的要求,我们只有一个slu and,需要查询/查找帖子/页面/文章数据。
我们已经构建了一个wordpress api v2插件来查询多个帖子类型。