跳过分类档案中的第一篇帖子

时间:2017-08-01 作者:aslamdoctor

我创建了一个过滤器,用于跳过“播客”类别中归档文件的第一篇帖子。下面是代码。

add_filter( \'pre_get_posts\', \'amd_limit_posts\');
function amd_limit_posts($query){
    if (is_category(\'podcast\')){
        $query->set(\'posts_per_page\', 4);
        $query->set(\'offset\', 1);
    }
    return $query;
}
它正在工作,但在分页的其他页面上,它显示与第一条记录相同的记录。因此分页链接(下一页/上一页)工作正常。但它显示的记录与第一页上的相同。

如何修复此问题?

1 个回复
SO网友:giolliano sulit

看看这里提供的Wordpress文档,您可以使用两个挂钩来完成您想要做的事情:

https://codex.wordpress.org/Making_Custom_Queries_using_Offset_and_Pagination

不幸的是,许多开发人员很难发现,在自定义WordPress查询中设置偏移量值会产生破坏分页的严重副作用。

然而,这有一个很好的理由。。。偏移量参数实际上是WordPress用来处理分页本身的值。如果开发人员设置手动偏移量值,分页将不起作用,因为该值将覆盖WordPress对给定页面偏移量的自动调整。

为了在WordPress查询中使用偏移量而不丢失WordPress的分页功能,您需要手动处理一些基本分页计算。这可以通过以下两个挂钩实现

pre_get_posts - This hook allows tweaking of queries before they are run. Here we need to ensure that our offset is applied only to the first page.

found_posts - Allows correction of WordPress\'s query result count. This allows us to ensure WordPress takes our offset into account for pages other than the first page.

结束

相关推荐

Query post Pagination Problem

我正在使用以下代码进行查询帖子,但我没有得到分页链接。以下代码的问题在哪里。<div id=\"primary\" class=\"content-area\"> <main id=\"main\" class=\"site-main\" role=\"main\"> <?php $arr = array( \'post_type\' => \'post