繁体   English   中英

Wordpress在首页上显示特定类别的帖子

[英]Wordpress show posts from certain category on first page

我想只在首页的某个类别的首页上发布帖子,当用户单击下一页时,他会看到其他所有内容。

我将此添加到我的functions.php中:

function my_home_category ($query) {
    if ( $query->is_home() && !($query->is_paged()) && $query->is_main_query() ) {
    $query->set( 'cat', '2');
    }
}
add_action ('pre_get_posts', 'my_home_category');

而且有效。 唯一的问题是,当我转到page 2 ,我看到通常位于第2页的帖子(如果我没有此功能),而不是所有类别的最新帖子。 因此,如果较早前第一页上有其他类别的帖子,我现在就无法在任何地方看到它们。

所以在功能开始之前,我的博客是这样的:

Page1: A, B, C, B, A <br>
Page2: B, A, A, C, B <br>

(A表示来自类别A的帖子...)

我想这样:

Page1: B, B, B, B, B <br>
Page2: A, C, A, A, A <br>
Page3: C ... <br>

但是发生的是:

Page1: B, B, B, B, B <br>
Page2: B, A, A, C, B <br>

你能帮我吗 ?

修改您的功能,以:

function my_home_category ($query) {
    if ( $query->is_home() && !($query->is_paged()) && $query->is_main_query() ) {
    $query->set( 'cat', '2');
    }
    else{
        //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 );
    }
}
add_action ('pre_get_posts', 'my_home_category');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM