WordPress首页主循环中排除置顶文章的代码
网站文章 2026-09-21 06:23:26 3 0

出于网站的开发需求,在首页主循环外的位置单独调用了网站的置顶文章,由于不想在首页出现两块相同置顶文章的列表,所以要排除主循环中最新文章前面的置顶文章。

博客吧以前分享过通过query_posts()实现排除置顶文章的教程《在wordpress最新文章列表中排除置顶文章》,但是使用query_posts()很容易引起文章列表的分页问题,因此并不是很建议使用,这里推荐使用下面的代码。

把下面的代码添加到当前主题的functions.php文件,保存即可

1
2
3
4
5
6
7
8
function exclude_sticky_posts($query){
    if ( is_admin() || ! $query->is_main_query() )
        return;
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'ignore_sticky_posts', 1 );
    }
}  
add_action('pre_get_posts','exclude_sticky_posts');

如果要排除其它页面的,就把代码中的is_home()改一下即可。

文章说明
本文标签:
©版权声明
本站提供的一切软件、教程和游戏辅助仅限用于娱乐和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集,版权争议与本站无关。如有侵权请邮件与我们联系处理。敬请谅解!6594404@qq.com