WP查询在超过~2000个帖子上崩溃

时间:2015-12-21 作者:Blackbam

您好,这里有一个自定义的帖子类型“组织”,我有大约5000篇帖子,这些帖子必须在一个页面内的链接列表中显示。

然而,WP\\u查询只是崩溃了(服务器上4秒后没有PHP超时)。这是WordPress的问题吗?如果是,他们为什么要限制它?或者这确实是一个服务器问题?

$q = new WP_Query(array(\'post_type\' => \'organization\',\'posts_per_page\' => 9999));

2 个回复
最合适的回答,由SO网友:Welcher 整理而成

查询这么多帖子是很危险的,你可以(而且确实)关闭网站。如果必须这样做,则需要调整查询以提高性能。

如果您只是需要链接,请添加\'fields\' => \'ids\' 这将只返回post ID,而不是整个post对象。然后可以使用ID获取永久链接、标题等。

如果不打算分页,则使用\'no_found_rows\' => true 这将阻止WordPress运行昂贵的SQL CALC查询来获取查询检索的帖子总数。

您应该使用Transient API 这将允许您在每次有人点击页面时返回缓存的HTML,而不是重建此查询。

SO网友:andrewdcato

无论何时运行查询,都可能会达到DB服务器的内存限制。

为什么要在一页上显示5k的结果?从用户体验的角度来看,这似乎是一个次优的想法。

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post