Recent Posts - Show all posts

时间:2017-08-06 作者:Bert McConnell

我对这一点非常陌生,我想做的只是不限制主页上列出的帖子数量。它目前只显示了大约32个帖子中的20个,因此所有旧帖子都不再显示。有没有一种简单的方法可以使最近的帖子下显示的帖子数量不受限制,甚至99个?

1 个回复
SO网友:Tom J Nowell

在“设置”下,您可以控制帖子的数量,但不能设置-1 这将是无限的帖子,但您可以设置一个非常高的数字:

enter image description here

但是呢just 主页

很多人通过在主页模板中添加自定义查询来解决这个问题,但这些人正在加倍WP的工作并破坏分页。这里有两种更容易、更快的方法

无限滚动如果你有很多帖子,这会更好,只加载用户可以看到的内容。当他们向下滚动时,会加载更多的帖子,因此他们永远不会到达底部(除非他们加载了所有要加载的内容)。

我建议使用Jetpack中提供的无限卷轴作为一个很好的例子,因为它适用于大多数开箱即用的主题

在获取内容之前修改主查询

pre_get_posts 是你的朋友!不要丢弃主查询并创建新查询!那太贵了,太浪费了!缓慢的取而代之的是,告诉WP你有一些修改,然后它就会去抓住帖子,例如:。

add_action( \'pre_get_posts\' function( \\WP_Query $query ) {
    if ( !$query->is_main_query() || !$query->is_home() ) {
        return; // this isnt the homepage, or the main query, skip!
    }
    $query->set( \'posts_per_page\', 100 ); // 100 posts per page on homepage
});
但是我想要ALL 立柱——前方危险------

如果您有30篇文章,并且希望全部显示,请将每页的文章数设置为200。你永远不会达到200,但一旦达到,你的网站就不会倒塌。

您无法预测未来或客户想要什么,代码应该具有弹性。仅仅因为你可以告诉WP获取每一篇文章并不意味着它能够。在大型网站上,可能很难将每篇文章加载到内存中,数据库可能需要太长时间,或者它可能生成太多HTML,以至于浏览器无法完成加载并超时。这就是为什么category和tag UI使用自动完成,而不是一次列出所有内容。

因此,将这个数字设置得非常高,设置为一个您确信永远无法达到但您的服务器仍然可以处理的数字。

但如果你觉得特别危险,就把它设定为-1. 这将获取所有内容,即使您的服务器无法处理太多内容。

但我只有32篇帖子,这是一个小网站

当然可以,但几年后,你的客户可能会导入5000篇帖子,因为他们需要该网站做一些现在做不到的事情。您可能有触发此场景的bug。您可能会意外地破坏导入,现在当您尝试加载它时,站点超时。您可能会在为数百篇帖子构建的其他站点上重用代码,谁知道呢?将其设置为-1 是一个坏习惯,将来会给你带来头痛和麻烦

结束

相关推荐

"Widgets" menu doesn't appear

我正在开发一个WordPress主题,它在我的本地主机和一个live server上运行得很好,但在我的另一个live server上,小部件菜单(从外观)不会出现。是的,所有3台服务器都有相同的3.6.1 WordPress版本,主题文件也相同。知道这是什么原因吗?这是functions.php 注册小部件区域:if (function_exists(\'register_sidebar\')) { register_sidebar(array( \'name\' => \