wordpress置顶文章问题

作者:norion时间:2012年6月13日评论次数:0 条

最近用wordpress做了小站,其中有涉及到置顶文章,查找了很多网站,他们都说用is_sticky()函数来判断是否是置顶文章,但是自从我网站建立以来,置顶文章的排序老是不正常,我是这样写的:

//置顶文章设置
if ( have_posts() ){
//query_posts( $query_string . "order=DESC" );
query_posts( $query_string . "order=DESC" );
$n = 0;
while ( have_posts() && $n<7 && is_sticky() ){ //判断文章是否置顶和限制条数
the_post();
$n++;
if ( $n == 1 ){
echo '<li><h2><a href="'. get_permalink() .'" title="'. get_the_title() .'">';
get_short_title(16);
//echo '<p><data>'.get_the_time('n月j日').'</data></p>';
//get_more_tags(' ', '|' , '');
//comments_popup_link('0 条评论', '1 条评论', '% 条评论', '', '评论已关闭');
echo '</a></h2><p>'. mb_substr(get_the_excerpt(),0,55,"utf8") ."...".'</p></li>';
}else{
echo '<li><span class="fn-left">[';
the_category(' ');
echo ']</span><a href="' . get_permalink() . '" title="' .get_the_title(). '" class="fn-left">';
get_short_title(14);
echo '</a><span class="titleAside fn-right">'. get_the_time('n月j日') .'</span></li>';
}
}
}

最后几条,排序老是出现最早的文章,太奇怪了,今天特意来修复这个bug,换了个写法,直接将

query_posts( $query_string . "order=DESC" );

is_sticky()

去掉,在循环前加入:

query_posts(array('post__in'=>get_option('sticky_posts')));

循环后加入:

wp_reset_query();

下面,贴一下最后的写的结果:

//置顶文章设置
query_posts(array('post__in'=>get_option('sticky_posts')));
if ( have_posts() ){
//query_posts( $query_string . "order=DESC" );
//query_posts('orderby=comment_count');
$n = 0;
while ( have_posts() && $n<7){ //判断文章是否置顶和限制条数
the_post();
$n++;
if ( $n == 1 ){
echo '<li><h2><a href="'. get_permalink() .'" title="'. get_the_title() .'">';
get_short_title(16);
//echo '<p><data>'.get_the_time('n月j日').'</data></p>';
//get_more_tags(' ', '|' , '');
//comments_popup_link('0 条评论', '1 条评论', '% 条评论', '', '评论已关闭');
echo '</a></h2><p>'. mb_substr(get_the_excerpt(),0,55,"utf8") ."...".'</p></li>';
}else{
echo '<li><span class="fn-left">[';
the_category(' ');
echo ']</span><a href="' . get_permalink() . '" title="' .get_the_title(). '" class="fn-left">';
get_short_title(14);
echo '</a><span class="titleAside fn-right">'. get_the_time('n月j日') .'</span></li>';
}
}
wp_reset_query();
}

标签:

上一篇: jQuery展示限时广告后自动消失

下一篇:解决升级到wordpress3.4后发生的错误

相关文章

评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注