2008.07 09

如何让文章像你想要的方式显示(初级)

这还是告诉你如何做一个CMS型Wordpress主题这个系列的文章,今天要介绍的是,如何让文章像你想要的方式显示的初级篇,这篇文章中,你会了解到如下的知识:

article2cms

  1. 如何调用最新日志
  2. 如何调用各个分类里的文章

我想,这些都是你希望实现的,因为它可以让你高亮最新或者最重要的文章,又可以让你的博客变得更有特点。当然,我们注重的是CMS,所以,我也会在下面介绍如何让这些来使你的主题变得更CMS。如果你对CMS的特点还不是很了解的话,建议你看看上一篇文章:博客中CMS主题是怎样的? 这对你理解接下来的文章是会有帮助的。

1.如何调用最新日志

  • <?php query_posts('showposts=5'); ?> // 可选,调用文章数目
  • <?php while (have_posts()) : the_post(); ?>
  • // 你的文章标题,内容等
  • <?php endwhile; ?>

以标题显示/摘要显示/全文显示最新文章

在上面的代码中,第一行是可选的(但你可能需要放置在<?php if (have_posts()) : ?> ... <?php endif; ?>之间),如果不用query_posts来限制文章调用的数目的话,你可以在后台–>Settings–>Reading设置输出的数目。而在第二个注释(//你的文章标题、内容等)中,即是你显示文章的代码,你可以看看下图中的标示:

post

在很多情况下,CMS主题除了第一篇/前篇,或者Featured Post进行全文或者摘要显示,其他的基本上都是用标题显示的,与Magazine型主题相比,后者更多的是以摘要方式显示。这三种文章的显示方法只要将上面的第三条标记的the_content进行修改即可:

  1. 显示摘要用:the_excerptthe_excerpt_rss
  2. 显示全文用:the_contentthe_content_rss
  3. 显示标题则:删除这部分的代码,如上图标记(orz,"则"定成"刚",不修改了)

让第一篇文章与其他文章显示不同的样式

通常情况下,第一篇文章都是比较重要的,他标记着你博客的最新信息。这可能是因为博客与其他网站不同的是,一般情况下其更新的频率都相对较低,所以,它才显得这么重要。实现对第一篇文章的特别显示,你可以应用如下的办法:

ensofish

应用上面提到的query_posts,将它调用的数目改为1,但是他可能导致分页出问题,这个我们将在进阶篇(下一篇提到),或者利用下面这段更方便解决问题的代码:

  1. <?php $my_query = new WP_Query('showposts=1');
  2. while ($my_query->have_posts()) : $my_query->the_post();
  3. $do_not_duplicate = $post->ID; ?>
  4. //你的第一篇文章的模式,注意上面的变量:$do_not_duplicate
  5. <?php endwhile; ?>

2.如何调用各个分类里的文章

dedecms

这个很重要,在第一篇文章博客中CMS主题是怎样的? 中已经讲过,把博客弄成CMS形式,是为了更好展示文章。但由于我们可能长时间更新一个分类的文章,导致其他文章没有足够的机会展示,为了让读者更方便的找到,我们需要运用这样的形式。

怎样调用各个分类的文章

  1. <?php query_posts('cat=7&showposts=5'); ?>
  2. // 7表示你的分类ID,1表示显示的数目,如果只想让文章不显示某个分类,那么在ID前加上"-"号
  3. <?php while (have_posts()) : the_post(); ?>
  4. <ul><li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li></ul>
  5. // 这里表示只展示标题
  6. <?php endwhile; ?>

Featured Post的做法

  1. <?php $my_query = new WP_Query('category_name=special_cat&showposts=10′); ?>
  2. <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
  3. // 你文章的样式
  4. <?php endwhile; ?>

其实,Featured Post的制作方法非常简单,同理于上面对分类的调用,它也是显示特定分类里的内容,只要把上面这段代码中标记橄榄绿的内容写成你想要的文章的名称,一般我们用featured命名这个分类。即category_name=special_featured

经过这一节的学习,感觉如何呢?下一节,我们将专注于样式的选择和解决一些常被忽略的/难以发现的问题。如果你没有看过前面的文章,那么请看告诉你如何做一个CMS型Wordpress主题。如果你希望在最快的时间得到下一篇的消息,那么,订阅我吧

24

  1. 2008.07.09 8:25 am
    Flyx(visit): [回复]

    恩,不错,最近更新很勤啊!这些都会了,期待下一篇教程o(∩_∩)o…

  2. 2008.07.09 8:36 am
    nobug(visit): [回复]

    这篇很实用啊!收藏了!

  3. 2008.07.09 9:13 am
    penddy(visit): [回复]

    新主题什么时候更换上啊?

  4. 2008.07.09 10:08 am
    Poshi(visit): [回复]

    好,如何调用最新日志这个我就要用上了,1个小时以后,我的博客就增加最新日志上去~~

  5. 2008.07.09 10:12 am
    Poshi(visit): [回复]

    又开始有新的“系列”出来了,都是挺有用的内容

  6. 2008.07.09 10:17 am
    Poshi(visit): [回复]

    另外,那个只显示某分类的文章,好像没看过谁实际用过

  7. 2008.07.09 10:24 am
    Poshi(visit): [回复]

    好像你居然用到了“锚文本”的代码?真是少见呀

  8. 2008.07.09 11:04 am
    小墨(visit): [回复]

    显示某分类的代码 感觉可以用到sitemap里
    输出更个性点~

  9. 2008.07.09 11:11 am
    Poshi(visit): [回复]

    你那上面的最新文章的,好像我用了没反应,倒是用了livesino.net的iris这个主题的代码 ,显示出来了,不过,我那个侧栏很窄,所以很难看,还是不用了

  10. 2008.07.09 12:29 pm
    sofish(visit): [回复]

    @Flyx: 因为放假了嘛,呵呵…

    @nobug: 哈哈,继续支持…

    @penddy: 总是感觉不满意,所以,暂时还没有换的准备…

    @Poshi: 设置锚点都不能的,你查一下源代码就知道了.关于那个最新文章,应该没问题的,我是在自己的模板提取出来的,不过,你可能需要结合模板做修改…

    不过,还是建议你一次在一条评论内发完,这样,我看也方便一点,呵呵^,^…

    @小墨: 也有挺多人这样设置的…

  11. 2008.07.09 1:23 pm
    花果山寨(visit): [回复]

    这些文章真详细,非常值得收藏,那天要是学习自己制作模板这就是教材!

  12. 2008.07.09 3:48 pm
    摩摩诘(visit): [回复]

    想办法在导航栏下面辟一个板块放Featured Post

  13. 2008.07.09 5:47 pm
    hileel(visit): [回复]

    嘿嘿!我现在的就用这种方法。。。不过我想改成Featured Post的做法!

  14. 2008.07.09 11:45 pm
    行者自若(visit): [回复]

    有点意思了,我看懂了,我决定我的新模板也要采用类似的手法。不过我有一个问题,如何才能做到以下几点:

    1,输出特定的分类
    例:我要做一个IT新闻分类,因为这个分类每天的更新量比较大,那么将这个分类做成CMS的列表样式(如何抓到特定分类的文章)

    2,还没想到,想到在来说。。。

  15. 2008.07.14 3:16 pm
    ccwenmi(visit): [回复]

    想办法在导航栏下面辟一个板块放Featured Post

  16. 2008.07.16 11:07 pm
    撒大厦的(visit): [回复]

    调试好久了 在试试

  17. 2008.07.18 9:48 am
    二手科学家(visit): [回复]

    看来我也得学学PHP编程,才能更好的理解sofish的文章

  18. 2008.07.19 7:35 pm
    iwordpress(visit): [回复]

    你天天更换摸班呀

  19. 2008.07.22 6:33 pm
    howkey(visit): [回复]

    文章很实用,我的博客就是用的cms模板自己修改的,还比较满意

  20. 2008.10.26 10:12 pm
    Kusanagi(visit): [回复]

    怎样在分页显示6篇文章,而在主页显示1(feature)+6篇呢?

  21. 2009.01.09 4:07 pm
    雪深(visit): [回复]

    很好 感谢博客

  22. 2009.02.07 11:47 am
    ghlmn(visit): [回复]

    “只要把上面这段代码中标记橄榄绿的内容写成你想要的文章的名称” 橄榄绿的内容是什么看不到啊

  23. 2009.03.30 10:39 pm
    sytao(visit): [回复]

    Hi !! 使用中遇到点问题,在如何调用最新日志的showposts变量如果设置成想显示2篇文章的话,就会遇到有一篇文章出现重复的情况,要不你试试看?

  24. 2009.11.12 8:59 pm
    (visit): [回复]

    调用各个分类的文章建议加段代码
    要不在sidebar上调用分类下的post信息之后,single、page页面直接调用了这些数据…很悲剧的…

Additional comments powered by BackType