宝宝健康成长网首页刘易桉宝宝健康成长 林林微博 育儿护理知识 宝宝网址导航
当前位置: 首页 >> 宝宝建站 >> wordpress博客创建动态的置顶文章

wordpress博客创建动态的置顶文章

WordPress 2.7 开始加入了“置顶文章(Sticky Posts)”。置顶文章的作用是希望长时间引起读者注意,可以表明站点的简介、版权声明、友情链接的交换原则等。但太长时间的不变也会引起阅读反感。本文将介绍如何给wordpress创建动态的置顶文章。

wordpress help forums关于多重循环的各种讨论中让我想到一个使用两次循环的方法。一个用来查询并仅显示某个分类中的文章。另一个用来查询在所有分类中的所有的文章。第一个查询是从the codex中复制来的,很容易理解:

$my_query = new WP_Query('category_name=frontpage&showposts=1');
while ($my_query->have_posts()) : $my_query->the_post();
$do_not_duplicate = $post->ID;

上述代码的意思是,变量my_query赋值为查询分类名为frontpage的所有文章的结果,并仅得到一篇文章。关键点在最后部分,给变量 do_not_duplicate赋值为返回的单独文章的ID值。我们在下一步需要这个值。

下面一段代码是很重要很标准的,可以在许多主题中找到。它能获取所有日志:

if (have_posts()) : while (have_posts()) : the_post();
//do stuff like format each post
endwhile;

这段代码获取所有的日志,并根据//do stuff这行(依赖于模板)的格式显示。如果仅仅这样编写代码,就会发生你所选的文章(置顶文章)被显示两次的情况(一次在置顶区域,另一次则是在所有其他文章区域)。显示这样并不好,所以这里要使用到do_not_duplicate函数了。添加到一个if语句中阻止制定文章显示两次。下面是代码:

if (have_posts()) : while (have_posts()) : the_post();
if( $post->ID == $do_not_duplicate )
continue;
//do stuff like format each post
endwhile;

代码中的第二个if语句的意思是,获取所有日志,且当发现一篇文章的ID值与do_not_duplicate的值相等时中断执行(continue语句),否则显示根据//do stuff这行的格式显示所有其他的文章。记住,do_not_duplicate函数值所代表的文章已经被显示过了。

就这样当你把所有内容放到一起得到了什么?一个动态的置顶文章!且最棒的部分是当置顶文章被新的一篇代替,之前的文章会在下面所有文章的区域显示出来(取决于你选择了多少文章显示以及文章的发表频率)。

敬请留言当前共有 8 条评论

  1. 酷剑 说道:

    其实我看不懂你要说什么的?我想问一下怎么调用某分类下的置顶文章呢?

  2. 二手科学家 说道:

    呵呵,这下我不明白你的意思了。你是要做成CMS主题,展示若干个分类列表。然后每个分类列表展示一篇置顶文章吗?

  3. 酷剑 说道:

    是的。请问这样要怎么弄呢?还是说代码本来就可以的呢?

  4. 二手科学家 说道:

    这个嘛,我觉得直接用代码写进去就可以了,不要查询数据库的语句。当然这个要加到每个分类列表循环语句中。

  5. 酷剑 说道:

    是不是直接用这个就行
    $my_query = new WP_Query(‘category_name=frontpage&showposts=1′);
    while ($my_query->have_posts()) : $my_query->the_post();
    $do_not_duplicate = $post->ID;

  6. 民工博客 说道:

    如何让相关文章和tag同时显示

  7. 二手科学家 说道:

    应该是可以的。

  8. 二手科学家 说道:

    不明白您的意思。

发表评论

^留言没头像?教你设置头像!
我的应用 Follow@cnbabyup 宝宝问答>  0-1岁  1-3岁  3-6岁 手气不错