WordPress类别循环偏移可能吗?

时间:2012-04-28 作者:snooker841

我研究这个已经有一段时间了,还没有真正找到一种在php中使用某种偏移量来过滤分类页面上的帖子的解决方案。

有帖子和页面的插件,但我正试图用纯php实现这一点,特别是针对类别页面。

场景示例:一个有7篇文章的博客,如果将偏移量设置为3,则类别页面上的循环将开始,只显示(Post4、Post5、Post6、Post7),而不显示(Post1、Post2、Post3)。

我想知道这是否有可能,是否有足够的动态性,可以适用于所有类别,而无需通过id号具体确定要排除哪些帖子。

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

“offset”参数满足您的要求。我写了这个黑客程序,它应该可以帮助你。。。

<?php
    //The third parameter corresponds to action priority,
    //set it to change the order of execution in case of a conflict
    add_action(\'pre_get_posts\', \'the_modified_loop\', 10);

    function the_modified_loop($query){
        //Remove \'is_admin\' if you want the code to run for the backend category archive page
        if(!is_admin() && $query->is_category()){
            $query->set(\'offset\', 3);
        }
    }
?>
让我知道它是否有效!

SO网友:Bill Erickson

别忘了检查$query->is_main_query()Codex:

<?php
//The third parameter corresponds to action priority,
//set it to change the order of execution in case of a conflict
add_action(\'pre_get_posts\', \'the_modified_loop\', 10);

function the_modified_loop($query){
    //Remove \'is_admin\' if you want the code to run for the backend category archive page
    if( $query->is_main_query() && !is_admin() && $query->is_category() ) {
        $query->set( \'offset\', 3 );
    }
}
?>

结束