WordPress置顶文章调用、排除、分页、is_sticky()判断
WordPress程序有一个很人性化的功能,就是可以在后台设置一些重要文章为置顶文章,从而让它们显示在整个文章列表的前面,也可以给设置更显眼的样式。
这篇文章针对于Wordpress置顶文章的用法做一个汇总,介绍一下Wordpress置顶文章的调用,排除,分页以及Wordpress置顶文章的判断方法。
WordPress置顶文章调用
WordPress置顶文章调用分为二种:调用全站置顶文章和分类置顶文章,方法见:WordPress调用全站置顶文章和分类置顶文章代码和wordpress置顶文章调用与设置。
WordPress置顶文章排除
WordPress置顶文章排除是指一个循环列表中,前面已经调用了置顶文章了,后面的文章列表里就不需要再显示置顶文章了,所以要排除掉置顶文章。
情况一:如果只是调用固定篇数的文章列表里同时调用置顶文章和普通文章,并且让置顶文章显示在顶部,普通文章排队前面的置顶文章,可以使用这个方法:WordPress最新文章列表中置顶文章靠前显示。
或者使用下面的代码来调用排队置顶文章后的普通文章。(使用post__not_in来排除置顶)
<?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();
?>
//在这里插入循环内部代码
<?php
endwhile;
endif;
?>
还可以使用'caller_get_posts' => 1,来排除置顶文章。
$args = array(
'post_password' => '',
'post_status' => 'publish', // 只选公开的文章.
<span style="color: #ff0000;">'caller_get_posts' => 1, // 排除置頂文章.</span>
'orderby' => 'comment_count', // 依評論數排序.
'posts_per_page' => $post_num
);
<?php query_posts('cat=5' . $mcatID. '&<span style="color: #ff0000;">caller_get_posts=1</span>&showposts=16&v_sortby=views'); ?>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>" title="<?php the_title() ?>"><?php the_title() ?></a></li>
<?php endwhile;?>
<?php endif; wp_reset_query(); ?>
情况二:如果是调用全站文章,并且有分页,这时再使用以上的方法就没用了,会出现分页后的每一页内容与第一页完全相同的情况。
这时我们可以通过判断文章是否为置顶文章,如果是置顶文章就排除不显示的方法。代码如下:
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php if(!is_sticky()){ ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></li>
<?php }?>
<?php endwhile;?>
<?php endif; ?>
WordPress置顶文章判断
怎么判断一篇文章是否被设置为置顶文章文章呢?WordPress程序给了相关的函数:
is_sticky()
通过这个函数就可以判断当前文章是否为置顶文章,用法如下:
<?php if(is_sticky()){
echo '此文章已被置顶';
}else{
echo '此文章未被置顶';
}
?>