需要调用置顶文章时,代码如下:
<?php query_posts(array("category__in"=>array(get_query_var("cat")), "post__in" => get_option("sticky_posts")));while(have_posts()) : the_post(); ?>
<!--置顶文章循环块-->
<?php endwhile;wp_reset_query();?>
<?php while(have_posts()) : the_post(); ?><?php if(!is_sticky()){?>
<!--普通文章循环块-->
<?php } endwhile;?>
以上代码是用在分类页的,get_query_var("cat"))
是获取当前分类页ID,"post__in" => get_option("sticky_posts")
就是查询置顶文章,is_sticky()
用于判断是否为置顶文章。
输出全部的置顶文章,代码如下
<?php
$sticky = get_option('sticky_posts');
rsort( $sticky ); //对数组逆向排序,即大ID在前
$sticky = array_slice( $sticky, 0, 5); //输出5篇置顶文章
query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) );
if (have_posts()) :while (have_posts()) : the_post();
?>
<!--置顶文章循环块-->
<?php endwhile; endif; ?>
此方法可以完美解决置顶文章与普通文章同页面显示的问题。