当前位置: 首页 > 知识库问答 >
问题:

WP REST API 查询多个帖子类型

秦昂然
2023-03-14

我正在尝试使用WP REST API从多个帖子类型中检索帖子。通过这样做,我可以从一个帖子类型book中获取提要:

http://example.com/wp-json/posts?type=book&filter[posts_per_page]=10

现在我想扩展提要以获取book电影。这只给我最后一个指定的类型:

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

我该怎么处理这件事?

谢啦!

编辑:修正语法以匹配我实际拥有的。以下是我在使用此语法<code>时遇到的错误:http://example.com/wp-json/posts?type[]一本书

警告:urlencode()期望参数1是字符串,数组在第4128行的 /home/newbreak/public_html/wp-includes/formatting.php中给出

警告:无法修改标头信息-标头已经由第587行的/home/new break/public _ html/WP-content/plugins/JSON-rest-API/lib/class-WP-JSON-server . PHP中的(输出开始于/home/new break/public _ html/WP-includes/formatting . PHP:4128)发送

警告:无法修改标头信息-标头已经由第587行的/home/new break/public _ html/WP-content/plugins/JSON-rest-API/lib/class-WP-JSON-server . PHP中的(输出开始于/home/new break/public _ html/WP-includes/formatting . PHP:4128)发送

警告:无法修改标头信息-标头已经由第587行的/home/new break/public _ html/WP-content/plugins/JSON-rest-API/lib/class-WP-JSON-server . PHP中的(输出开始于/home/new break/public _ html/WP-includes/formatting . PHP:4128)发送

警告:无法修改标头信息-标头已经由第587行的/home/new break/public _ html/WP-content/plugins/JSON-rest-API/lib/class-WP-JSON-server . PHP中的(输出开始于/home/new break/public _ html/WP-includes/formatting . PHP:4128)发送

警告:无法修改标头信息-标头已经由第587行的/home/new break/public _ html/WP-content/plugins/JSON-rest-API/lib/class-WP-JSON-server . PHP中的(输出开始于/home/new break/public _ html/WP-includes/formatting . PHP:4128)发送

警告:无法修改标头信息-标头已经由第587行的/home/new break/public _ html/WP-content/plugins/JSON-rest-API/lib/class-WP-JSON-server . PHP中的(输出开始于/home/new break/public _ html/WP-includes/formatting . PHP:4128)发送

只有当我将类型作为数组类型发送时,我才会收到错误[]。

共有2个答案

司空昊阳
2023-03-14

我们有一个类似的需求,我们只有一个slug,需要查询/找到帖子/页面/文章数据。

我们已经构建了一个wordpress api v2插件来查询多个帖子类型。

下面是插件代码https://github.com/elevati/wp-api-multiple-posttype

姬和豫
2023-03-14

您还可以尝试注册其他endpoint,这样就不必在每个请求中添加那么多查询参数。我使用的是WP REST API插件的最新版本。

因此,对于名为“movies”的自定义内容类型,您可以拥有一个类似于 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留档站点为不同内容类型添加自定义endpoint的留档。

 类似资料:
  • 我目前在wordpress网站上有一个基于复选框的搜索和筛选。 基本上,它使用这个wp_查询工作 我想远离使用类别(因为这让使用博客很痛苦) 所以我现在已经使用自定义分类法设置了所有内容,并注意到没有“taxonomy__and”。 有没有人知道一种使用WP_查询的方法来搜索使用分类法的帖子,就像category_u和and一样? 例如。我传递了多个分类法id,它只返回所有链接的帖子。

  • 我在这个问题上搜索了很多,但找不到任何有说服力的东西。也许有人能帮我! 我有自定义帖子类型的地方和两个自定义分类法的地方区域和地方类别。我正在根据这两个分类法构建一个下拉过滤器。如果筛选器是空的,并且选择了两种分类法,那么一切都很好。但是我不知道如何使它工作,如果一个分类法有价值,另一个是空的。 我的问题是: 我认为空值将意味着所有分类术语,但它似乎在寻找一个不存在的术语,并返回空结果。 如果术语

  • 问题内容: 我正在编写类似于博客软件的Web应用程序。有以下三个表 我很难概念化SQL查询,该查询将返回在给定集中具有“所有”标签的帖子。 问题答案: 这是关系划分。 使用和或加倍。 第一种方法的一个例子是。

  • 问题内容: 桌子: 我的查询: 我收到“ MySQL子查询返回多个行”错误。 我知道此查询可以使用以下查询的解决方法: 然后使用php循环遍历结果并执行以下查询以获取和回显它: 但是我认为可能会有更好的解决方案? 问题答案: 简单的解决方法是在子查询中添加一个子句: 一个更好的选择(就性能而言)是使用联接:

  • 对于每个成员(作者),我有一个字段来存储成员性别。(Homme/Somme)。 数据存储在我的数据库中,wp_usermeta。 元键是“性别”,元值是“男人”或“女人”。 我试图写一个wp查询来显示所有作者的所有帖子,但只有“Homme”作者,另一个只有“女性”。 以下是我的wp查询,用于显示所有帖子,无需按性别筛选: 工作正常。 这是我到目前为止试图只从“男人”性别获得的帖子,但它不起作用。。

  • 我正在研究post_type和分类学。我为它的主页创建了一个页面模板foo_template.php,在主页上我写了一个查询,显示所有分类法和相关的(5)五个帖子。当我点击任何分类法的新页面打开,它显示了点击分类法的所有帖子标题,其段塞是“foo_taxonomy”,我还为它创建了一个页面“taxonomy-foo_post.php”,当我点击任何标题时,它会出现在单页上我为它创造了“single