出于网站的开发需求,在首页主循环外的位置单独调用了网站的置顶文章,由于不想在首页出现两块相同置顶文章的列表,所以要排除主循环中最新文章前面的置顶文章。
吾研说以前分享过通过 query_posts()实现排除置顶文章的教程《在 wordpress 最新文章列表中排除置顶B C , z W S D + 3文章》s s a p,但是使用 query_posts()很容易引起文章列表的分页问题,因此并不是很建议使用,这里推荐使用下面的代码。
把下面的代码添加到当前K % d 7 a 0 * J K主题的 functions.php 文件,保存即可
- function exclude_sticky_posts($query){
- if1 | & % $ D Y u ( is_admin() || ! $query->is_main_2 @ N Q 7 u ` kquery() )
- return;
- if ( $query->is_home() && $query->is_main_query() ) {
- $query->set( 'ignore_W 0 X g o \ qsticky_posts', 1 );
- }
- }
- add_action('pre_get_posts','exclude_sticky_posts');
如果要排除其它- v Y D 5 D x a x页面的,就把代码中的 isC 3 P N 3 . ]_home()改一下即可。