或者说,我是如何展示我的博客首页的。
首页是很重要的,它担负着向访客展示网站重要内容,页面导航的作用。对于WP来说,非cms首页一般都是在首页展示最新日志,以列表形式呈现。我们还要考虑seo,像http://www.qiqiboy.com/blog这样的列表形式就会很不利于seo,因为搜索引擎只能抓取文本文字,这样动态加载的列表形式是不能为爬虫正常访问的,所以只能抓取到文章标题。这还不是我要说的,我想说的是,对于WordPress来说,一个首页应该包括的基本内容,不知道其它作主题的人有没考虑到。
第一是文章置顶功能,早期的WP需要插件来实现,但是现在WP在2.7以后都已经内置支持了。所以首页应该有支持置顶文章。如何支持呢?如果是在页面主循环中,要保持置顶文章与其它文章的样式不同,则只需用is_sticky()函数判断,即在主循环
1: <?php while (have_posts()) : the_post(); ?>
后添加
1: <?php if(is_sticky()) { ?>
2: //你的样式
3: <?php } ?>
在{}中单独定义对置顶文章的样式设定,如标题颜色,如何显示内容(摘要,more截断,全文)等。
一个简单列子
1: <?php if(have_posts()) : ?><?php while (have_posts()) : the_post(); ?>
2: <div class="post" id="post-<?php the_ID(); ?>">
3: <?php if(is_sticky()) : ?>
4: <h2><?php _e('[置顶]'); ?><a class="title stickytitle" href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2>
5: <?php else : ?>
6: <h2><a class="title" href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></h2>
7: <?php endif; ?>//结束置顶判断
8: <?php the_content('Read more...'); ?>
9: </div>
10: <?php endwhile; ?><?php endif; ?>
例子中对于置顶文章添加了一个class属性 stickytitle ,同时标题前面加上了“[置顶]”表示文字。你不需要关注如何使置顶文章显示在其它文章前面,因为你使用WP默认的主循环它就会自动将置顶文章显示在其它文章前面。
但是,对于有些时候,我们需要将置顶文章显示在页面主循环之外其它位置,不在主循环中展示,这是怎么办?即如何将置顶文章在他处调用?可以用query_posts函数,这个会改写并取代页面的主查询。get_option(‘sticky_posts’)参数返回所有置顶文章的数组形式。
1: <?php query_posts(array('post__in'=>get_option('sticky_posts'))); ?>
在置顶文章的循环前加上这个,就会只返回置顶文章了。然后剩下的文章,如果要排除指定的文章,则可以在这些文章的循环前加上
1: <?php query_posts('caller_get_posts=1'); ?>
排除置顶文章。即页面上两处循环,置顶文章循环前加置顶调用参数,其他文章循环前加上面的代码。
说完置顶,还有一个功能我觉得也是不可少的,那就是文章预告功能。即你在后台设定了一篇文章在某个时间自动发布,在首页显示这篇文章的发布信息。如何使用呢,只需新建WP_Query对象查询即可。
1: <?php $my_query = new WP_Query('post_status=future&order=ASC'); ?>
2: <?php while ($my_query->have_posts()) : $my_query->the_post(); $do_not_duplicate = $post->ID; ?>
3: //你的循环
4: <?php endwhile; ?>
这样就可以将预定时间发布的文章的信息调用了。你可以参考主循环,对标题日期等进行样式设定,还可以设置是否显示内容摘要等。
————————————————分割线————————————————————
我是如何处理置顶、文章预告与自然文章的?
在传统的列表形式首页(http://www.qiqiboy.com/blog),我是将文章预告与站内公告,搜索引擎访客提示等结合在一起的,文章预告会以标题列表形式在站内公告栏处显示。置顶文章则会在标题前加上 [置顶] 标识.对于我刚做的CMS式首页,则将置顶文章、预告文章与主循环与次级循环结合起来,没有置顶和预告文章时,slideshow右边显示最新发布的一篇文章的标题、日期、评论数即截断一定字数的摘要或日志内容,下方的五篇文章则是排除了这篇文章的最近五篇文章。如果有置顶或预告文章,则会在这儿显示置顶或预告的文章。同时,下方的五篇最近日志则只会排除置顶文章(预告文章无需排除)显示最新的文章。
