错误与“;每页张贴-1当使用WordPress插件编码标准和Php Codesniffer验证我的插件时

错误与“;每页张贴-1当使用WordPress插件编码标准和Php Codesniffer验证我的插件时,php,wordpress,Php,Wordpress,我正在使用wordpress编码标准和php codesniffer验证我的插件,但我不知道如何删除此问题: Disabling pagination is prohibited in VIP context, do not set | | `posts_per_page` to `-1` ever. | | (WordPress.VIP.PostsPerPage.posts_per_page) 我总是使用posts\u per\u page=-

我正在使用wordpress编码标准和php codesniffer验证我的插件,但我不知道如何删除此问题:

Disabling pagination is prohibited in VIP context, do not set
      |       | `posts_per_page` to `-1` ever.
      |       | (WordPress.VIP.PostsPerPage.posts_per_page)

我总是使用posts\u per\u page=-1来获取posts来获取所有posts,我不知道没有它如何获取所有posts。

PHPCS和WordPress插件在以下所有情况下都会出现此错误:

'nopaging'       => true, // Bad.
'posts_per_page' => 999, // Bad.
'posts_per_page' => -1, // Bad.
为什么??基本上,如果禁用分页,那么如果查询返回的结果可能超出服务器(或客户端)的处理能力,则可能会遇到严重的性能问题

理由似乎可以在以下章节中解释:

限制
查询 使用
posts\u per__page
(或
numberposts
)并将值设置为-1或不合理的高数字,或将
nopage
设置为
true
,如果查询最终查询数千篇文章,则可能会出现缩放问题

您应该始终获取尽可能低的数量,这样仍然可以获得您认为可以接受的结果数量。想象一下,随着时间的推移,您的站点会增长到包含10000篇帖子。如果为每页
帖子指定-1,则每次查询都会无限量地获取10000篇帖子,这将破坏网站的性能。如果你知道你永远不会有超过15篇文章,那么把每页的文章设置为15篇。如果你认为你想要显示的数据可能超过15个,但怀疑它是否达到100个以上,那么将限制设置为100个。如果它比这个值高得多,您可能需要重新考虑一下页面架构

如果要阻止PHPCS对此进行投诉,请修复代码以开始使用分页,或通过将此代码包含在
PHPCS.xml
文件中来禁用这些特定检查:

<exclude name="WordPress.VIP.PostsPerPage.posts_per_page_nopaging" />
<exclude name="WordPress.VIP.PostsPerPage.posts_per_page_numberposts" />

PHPCS WP 1.0版的更新:
版本1.0不再包含
WordPress.VIP
策略,因此如果您升级它,您可能不会看到此错误

只需设置“每页帖子数”=>PHP\u INT\u MAX


这就是我所做的,PHPCS现在很高兴:)

你能不能把每页的
帖子数量定得很高?像
99999999
他们在这里有一些注释,我不认为将每页帖子设置为9的倍数是一个好方法:|他们说这不好,他们没有说这不起作用。如果你不显示分页结果,请删除每页帖子参数。检索所有结果的正确方法是将nopaging设置为true(nopaging=true)。@Lukepterson我得到了这个错误:“phpcs说在VIP上下文中禁止禁用分页,不要将
nopaging
设置为
true
任何时候。”因此,显然,你不应该将
nopaging
设置为true。我不明白为什么。