wordpress 如何使用WP REST API随机排序文章?

pxy2qtax  于 2024-01-06  发布在  WordPress
关注(0)|答案(1)|浏览(202)

我试图使用WP REST API显示帖子,我想随机显示它们。
我知道查询的职位与WordPress的正常方式有一个orderby:兰德选项,这将做什么我正在寻找,但我不能弄清楚它与REST API。
我的REST API看起来像这样:
https://example.com/wp-json/wp/v2/fatos_random?filter[orderby]=rand&per_page=1
谢谢帮忙

sf6xfgos

sf6xfgos1#

wp_query接受orderby的很多值,包括'rand'。
JSON API只接受a few:'date','relevance','id','include','title',和'slug'。或者,根据this page,'author','date','id','include','modified','parent','relevance','slug','include_slugs','title'之一。
JSON API也有一个默认的限制,每个请求100个结果,尽管this answer到另一个问题应该增加。
在不修改JSON API的情况下,要获得随机结果,您首先需要请求所有结果,然后将它们随机排列,然后按ID显式请求一系列结果,并可能按“包含”对其进行排序。但是,如果您有许多潜在的结果,这就远非理想。
修改JSON API更具可持续性。您可以为此创建一个自定义端点,类似于here所解释的内容。
更简洁的解决方案是扩展JSON API以返回随机结果,但是,为了避免在后续请求中获得重复的结果,您还需要在某个地方跟踪已经返回的结果。使用wp_query,您可以使用“post_not_in”作为参数来传递此结果。使用JSON API,参数为“exclude”。或者您可以为此使用某种服务器缓存;你仍然需要在某个地方跟踪已经返回的结果。

相关问题