如果计数大于100,WP API将获取所有媒体/帖子记录

时间:2016-10-10 作者:Srikant Behra

我使用per\\u页面而不是过滤器,因为它不再可用。但问题是per\\u页值可以在1到100之间。如果我想调出超过100张的唱片呢。如果计数超过100,per\\u页将不会返回记录。在下面的API中,我想提取计数超过100的图像。

http://domain_name/wp-json/wp/v2/media/?per_page=100

感谢您的帮助

斯里坎特

4 个回复
SO网友:r_alex_hall

将页码查询添加到请求URL,然后继续查询下一个页码,直到得到空结果:

<your_wordpress_install_base_url>/wp-json/wp/v2/media/?per_page=100&page=2
马克建议考虑要求每页少于100张,这可能是一个好建议。因此,例如,您可能希望通过以下方式进行查询:

<your_wordpress_install_base_url>/wp-json/wp/v2/media/?per_page=25&page=3
还请注意(至少对我来说),如果将这些查询URL构造为~/media?per_page=3 (而不是~/media/?per_page=3). 我不知道哪一个更受欢迎。

顺便说一句,谢谢你/media/?per_page=100 您的示例的一部分。当我查询/media :)

SO网友:Mark Kaplun

限制是有原因的,在试图克服它们之前,你应该问问自己,“为什么会有限制”。限制是存在的,因为如果响应是无限的,那么每个人都可以通过请求在一个请求中获取所有帖子来崩溃Web服务器或DB来简单地拒绝任何站点。

即使不考虑这个因素,即使是100人也很可能是个懒汉。如果要使用REST API,只需在实际需要时获取少量数据即可。

还想得到100多个?编写自己的json端点和处理程序。

SO网友:db306

你可以add a route 到您的wordpress REST api。这样你就可以根据需要提取尽可能多的图像。您可以复制获取图像的当前路径,并删除最大筛选器,以免遇到此问题。

SO网友:Goran Stanković

创建包含以下内容的新php文件,并将其用作新端点:

header(\'Access-Control-Allow-Origin: *\', \'Content-Type: application/json\'); // Avoid cross origin block

$url1 = \'https://www.example.com/wp/v2/posts?per_page=100&page=1\'; // path to your JSON file
$url2 = \'https://www.example.com/wp/v2/posts?per_page=100&page=2\'; // path to your JSON file
$json1 = file_get_contents($url1);
$json2 = file_get_contents($url2);

$my_array1 = json_decode($json1, true);
$my_array2 = json_decode($json2, true);
$res = array_merge($my_array1, $my_array2);
$json_merge = json_encode($res);

echo $json_merge; // new json
并将其用作新端点。这是200篇文章的示例,您可以根据需要添加更多输入端点。

相关推荐

如何使用wp-api向用户添加元字段?

如何使用wp api添加、更新和检索用户元字段?我添加了一个函数来向用户添加元字段phonenumber。这样的函数是否需要向元对象添加元值?该函数不会将字段添加到API响应中的元对象,而是将其作为新字段添加。我现在拥有的功能:<?php function portal_add_user_field() { register_rest_field( \'user\', \'phonenumber\', array( \'