如何从 WordPress 帖子循环中排除最新帖子

您想从 WordPress 帖子循环中排除最新帖子吗?

这使您可以选择是否希望您的最新博客文章显示在您的主页或其他展示您的博客文章的页面上。

在本文中,我们将向您展示如何从 WordPress 帖子循环中排除最新帖子。

如何从 WordPress 帖子循环中排除最新帖子

为什么要从 WordPress 帖子循环中排除最新帖子?

当您编辑主题并希望更好地控制第一篇文章的显示方式时,在显示其他文章时排除最新文章会很有帮助。

例如,您的第一篇文章可能有不同的格式,或者与您的默认WordPress 博客中列出的内容无关。

话虽如此,让我们向您展示如何使用两种不同的方法从 WordPress 帖子循环中排除最新帖子。

方法 1. 通过添加新的 WordPress 功能从 WordPress 帖子循环中排除最新帖子

从帖子循环中排除最新帖子的最简单方法是向您的 WordPress 文件添加代码。如果您以前没有这样做过,请查看我们的指南,了解如何在 WordPress 中复制和粘贴代码。

您可以将下面的代码片段添加到您的functions.php文件中,在特定于站点的插件中,或使用代码片段插件。

function wpsites_exclude_latest_post( $query ) {    if ( $query->is_home() && $query->is_main_query() ) {        $query->set( ‘offset’, ‘1’ );    }} add_action( ‘pre_get_posts’, ‘wpsites_exclude_latest_post’, 1 );

此代码将排除在您的主页循环中显示的最新帖子。offset设置为一个,因此只有第一个帖子会被隐藏。

add_action(‘pre_get_posts’, ‘myprefix_query_offset’, 1 );function myprefix_query_offset(&$query) {     //Before anything else, make sure this is the right query…    if ( ! $query->is_home() ) {        return;    }     //First, define your desired offset…    $offset = 1;         //Next, determine how many posts per page you want (we’ll use WordPress’s settings)    $ppp = get_option(‘posts_per_page’);     //Next, detect and handle pagination…    if ( $query->is_paged ) {         //Manually determine page query offset (offset + current page (minus one) x posts per page)        $page_offset = $offset + ( ($query->query_vars[‘paged’]-1) * $ppp );         //Apply adjust page offset        $query->set(‘offset’, $page_offset );     }    else {         //This is the first page. Just use the offset…        $query->set(‘offset’,$offset);     }}

此代码片段将offset再次设置为 1。但是,它还添加了偏移量并引入了分页。在这里,它告诉我们的博客存档跳过第一篇文章。

add_filter(‘found_posts’, ‘myprefix_adjust_offset_pagination’, 1, 2 );function myprefix_adjust_offset_pagination($found_posts, $query) {     //Define our offset again…    $offset = 1;     //Ensure we’re modifying the right query object…    if ( $query->is_home() ) {        //Reduce WordPress’s found_posts count by the offset…         return $found_posts – $offset;    }    return $found_posts;}

最后的代码片段再次定义了您的offset时间。另外,它确保分页能够正常工作。

一旦您添加了上面的代码片段,最新的帖子现在将从 WordPress 帖子循环中删除。

方法 2. 通过更改 WordPress 主题文件从 WordPress 帖子循环中排除最新帖子

从 WordPress 帖子循环中排除最新帖子的另一种方法是在 WordPress 主题文件中添加一行代码。

这实现了与上面的代码类似的结果,但您需要将其直接添加到您希望它显示的WordPress 循环中。

因此,如果您想在整个站点范围内更改发布循环,那么您可以将其添加到您的index.php文件中。

注意:将此代码添加到您的 WordPress 文件可能会导致您的网站出现分页问题。

首先,您需要复制并粘贴以下代码并将其添加到您的 WordPress 循环中。

query_posts(‘posts_per_page=6&offset=1’);

此代码使用query参数并告诉循环仅显示最新帖子之后的 5 个帖子。该offset参数停止显示最近的帖子。

它将直接在您的 WordPress 帖子循环上方,因此它看起来类似于下面的代码片段。

query_posts(‘posts_per_page=6&offset=1’);if ( have_posts() ) :while ( have_posts() ) : the_post(); endwhile;

自定义并保存文件后,您需要将其上传到WordPress 托管帐户中的主题目录。

为此,您可以使用FTP 客户端,或 WordPress 主机控制面板中的文件管理器选项。

如果您以前没有使用过 FTP,那么您可能需要查看我们的指南,了解如何使用 FTP 将文件上传到 WordPress。

添加代码后,最新的 WordPress 帖子将从 WordPress 帖子循环中排除,并且不会显示在您的博客页面上。

我们希望本文能帮助您了解如何从 WordPress 循环中排除最新帖子。您可能还想查看我们关于如何选择最佳域名注册商的指南以及我们的专家挑选的最佳 GoDaddy 替代方案。