34
大家都知道Wordpress首页能选择显示全文或是摘要。
全文的优点的方便读者阅读,但是这样首页内容庞大,并且对搜索引擎来说有内容重复之嫌。
摘要显示控制比较自由,能手动调节显示内容,但每次都要加 More 标签,也让读者多麻烦了一步。
之前所以说一直选择首页显示摘要,在 AllanAn 的建议下,秉着“不折腾会死”的精神,对首页显示做了修改。
最后实现的效果是:首页与分页中的每一页开头第一篇文章显示全文,其余的显示摘要。

先说明,原始的摘要显示是怎么弄的呢?有两种办法:
the_content()函数,它能与 More 标签配合使用,在索引页显示摘要,在single.php等内页自动显示全文。
the_excerpt()函数,它提取文章内容,去掉了大部分的HTML标签,输出纯文本格式的文章。这样显示个人认为用在英文文章还可以,对中文效果并不好。
我们在下文中将使用the_content()函数来输出摘要,你可以根据自己的喜爱替换它。
我们要编辑的是模板文件内的索引页模版 (index.php)
为了能识别出哪篇是第一篇,先给文章编上号:
找到
1 | <?php if (have_posts()) : ?> |
在后面添加
1 | <?php $count = 1; ?> |
然后找到首页显示正文的区域,通常是在 class="entry" 的一个DIV容器内,找到这个函数:
1 | <?php the_content('',FALSE,''); ?> |
修改这句话,改成第一篇忽略more标记
1 2 3 4 5 | <?php if ($count == 1) : ?> <?php $more = 1; the_content('',FALSE,''); ?> <?php else : ?> <?php $more = 0; the_content('',FALSE,''); ?> <?php endif; $count++; ?> |
到这里就全部修改结束了。
第一篇文章全文输出,其余显示摘要。这是我所能想到的最好的输出方式了。如你也有什么好办法,请留言告诉我。谢谢!




WP已经算不错了
Blogspot的相关功能是人们心中永远的痛
我来试试看
其实很羡慕wp的功能的
确实,WP提供了很多很多可以直接调用的函数。其实。。我看你还是换用WP吧,我看现在国内虚拟主机也有越来越多能满足WP的要求了
我是习惯了首页、分类、标签、搜索全用摘要,唯single页全文!
嗯,这个设计该是不错的,因为能够突出第一篇Post。不过个人感觉,blog 的就是为了让人阅读的更方便简单,事实上,没有太多的人点击其余的文章链接,除非文章确实有价值和意义。
另,兄弟啥时候更换了这张皮?不错,简单大方!
我这个皮缺点就是第一篇显示了全文,但是那个“阅读全文”的按钮没法去掉,会引起误导。
有时候也有一些莫名其妙的留言出现在很久以前的文章里。。
准备好了,向wp转型了。
等我空间过期了再说。
你不是有那个免费空间么,拿那个先试试不错。
WP绝对是强大的, 不过这样修改貌似没有多大意义..
呃。。看各人理解了。我觉得WP既然提供了more这个参数,一定程度上应该是鼓励用户做这个修改的吧。
我都是手动插入more的, 看上去不错.
我也是手动插入more。 用more来显示摘要是最好的办法了。
很有道理,我也差不多是这么做的。首条全文输出无论是对于排版,还是SEO效果都挺好。
对诶。。是我没认真看。早知道就问你了。。我还研究了半天。。
为什么要这么干呢?
这个。。很明了的啊。。摘要显示是关于读取速度和SEO的优化,全文显示是为了方便读者。
我这个做法是中和了这二者
请问你这用得是什么代码高亮插件
效果很不错呢
用的是WP-Syntax
有个比较弱智的注意点。。不过还是说说啦,用代码高亮插件的时候要手动写好lang=?的
好的,去装个试试看
谢谢了
也沒多少流量,我就全文顯示吧,嘿嘿
非WP用户。
WP有很多不错的使用技巧,不过就是没有空间、数据库麻烦点。而且还要维护。
继续使用Blogger!
不错的想法,同样的实现这个功能还可以通过用两个或者多个loop实现,我用的就是这种。借宝地分享一下
1, 'caller_get_posts' => 1 ) ); //指定显示1个也就是最新的一篇日志,这里还可以插入一些 cat post__in 之类的指定铁定分类或者是置顶日志
while ( have_posts() ) : the_post(); $do_not_duplicate[] = $post->ID;
//设置一些样式
the_content();
//设置一些样式
endwhile; wp_reset_query();
/**
*第二节
*第二节和第一节的区别就只在多加了一个'post__not_in'
*
*/
query_posts( array( 'showposts' => 12, 'caller_get_posts' => 1 , 'post__not_in' => $do_not_duplicate ); //同上
while ( have_posts() ) : the_post(); $do_not_duplicate[] = $post->ID;
//设置一些样式
the_excerpt(); //没有插入 More 标签习惯的我,就一直用的这个,,,,
//设置一些样式
endwhile; wp_reset_query(); ?>
要设置跟多方式,把第二节复制一下,就可以了
还有一种,不用
while其实这也算是一种写loop的方式
还有一种方法就是使用
不过需要使用foreach一个一个的呈现出来,官方给的主题都没直接这样使用过,估计是有其他的考虑吧。
强大的WP,我爱你
为什么倒数第三排差个代码段呢?好郁闷。。。。
那你是都不加more了,我是没法这样弄了,我每篇都有more标签。。
而且你的模板也适用the_excerpt()摘要
WP真够强的
呵呵,很多朋友都为这个伤脑筋,还好我也会,嘿嘿
我来参观
很实用的技巧!
你好,想请教一下我博客关于显示正文的代码是这样的:
<?php if ( 1 == $first && is_home() && !is_paged() ) {
the_content('Read more…’);
$first = 0;
} else {
the_content(’Read more…’);
} ?>
请问应该如何修改呢?
我就不折腾这个了,围观!
我是被图片吸引过来的
我在寻找全局置顶的插件,wpsticky 好像不是很好用。有没有什么方法实现将某一篇post 在每个页面,不管是index.php,signle.php 还是在page.php 的情况下都会置顶,而是是全部展开的
额,我不懂置顶该怎么设置。但是单篇文章展开,可以根据文章的ID来判断。