服务器与VPS
促销优惠信息

wordpress排除置顶文章,如何让wordpress不显示置顶文章?

前面的文章里,楚狂人和大家分享了wordpress调用置顶文章的代码,和使用纯代码为网站首页添加置顶模块的方法。但是有时候我们又不得不让wordpress排除置顶文章,比如已经通过幻灯片、或者单独的置顶模块调用了置顶文章,那么在最新文章就不希望再显示这些置顶文章了,否则内容就重复了。那如何让wordpress文章列表不显示置顶文章?

我们可以通过以下方法控制首页是否显示置顶文章:

1、正常输出文章,不区分是否置顶:

按普通方式输出文章
<?php
$args = array(
'posts_per_page' => 10, //每页显示10篇文章
'ignore_sticky_posts' => 1 //取消文章置顶
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();

//在这里插入循环内部代码

endwhile; //结束while
endif; //结束if
?>

这样,所有文章都按照正常时间排序,不区分是否为置顶文章。

但是,这样的排除也并不彻底,有时候我们希望干脆在这个列表循环中彻底排除置顶文章,那么可以使用以下代码:

2、wordpress排除置顶文章代码:

<?php
$the_query = new WP_Query( array( 'post__not_in' => get_option( 'sticky_posts' ) ) );
if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();

//在这里插入循环内部代码

endwhile; //结束while
endif; //结束if
?>

‘post__not_in’ => get_option( ‘sticky_posts’ ) 是关键参数,彻底排除置顶文章(凡是置顶文章都不输出)。假如你在已经在首页的其他地方(比如幻灯中)显示了置顶文章,那么,接下来的主循环中排除置顶文章,这样就可以避免重复显示。

如果你使用以上代码后发现翻页功能失效了,那么WP_Query结束后要使用wp_reset_postdata(),否则可能会影响其他Query。

此方法代码来自:www.wpdaxue.com/exclude-sticky-posts-from-the-loop.html

楚狂人 » wordpress排除置顶文章,如何让wordpress不显示置顶文章?

相关推荐

  • 暂无文章

评论 抢沙发

  • (必填)
  • (必填)

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏