一种方法是单独请求每篇文章数据,另一种就是用一个循环标识数字来控制。第一种方法麻烦,不是特殊情况下用不到,第二种方法则可能会经常用到。比如,添加广告,控制第X篇文章的标题、tag、category,甚至前半部分与后半部分文章输出内容格式的不同(摘要与截断)等。
使用方法就是在主循环开始前加上一个$count = 1; 变量。然后在循环主体中,想要改变第n篇文章的不同则在循环部分前面加上
所谓循环部分就是常规文章的格式定义。代码中$count=1是第一篇文章,其它文章更改相应编号即可。后面的$count++是让每次循环变量$count的值自加1.
我说的可能不够明白,那么举一个例子,如页面八篇文章,要让前三篇显示more截断,后面五篇只显示标题。可以这么做:
1: <?php if (have_posts()) : $count=1;while (have_posts()) : the_post(); ?>
2: 3: <div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
4: <h2><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title();
?></a></h2>
5: <small><?php the_time(__('F jS, Y')) ?></small>
6: <?php if($count == ( 1 || 2 || 3 ) : ?> 7: <div class="entry">
8: <?php the_content(__('Read more »')); ?>
9: </div> 10: <?php endif;$count++; ?> 11: </div> 12: 13: <?php endwhile;endif;
?>
将more截断输出内容包含在if语句中,所以只有前三篇会显示more截断内容,后面的都不会显示了,只剩下标题和发表时间。如果你有其他需要,例如让前三篇的标题和后五篇不一样,那你可以在标题循环前,即<h2>标签前面加上if判断定义前三篇的标题。注意不要加到<h2>标签后,因为网页解析是从上自下,加载后面会不起效。
本文教你让你的首页变得与众不同,既非全文输出所有文章,也非输入文章列表的摘要,而是,输出最新一篇文章的全文或<
!-more->标签之前内容,第二篇以及以后内容输出纯摘要。以两种形式定制首页。其实用今天所说的方法,可以定制几种不同的方式,关键就看你如何设计了。
下面是按上图输出文件的方法:
1,打开你的index.php或home.php,找到:
2,在这一句的前面加上代码:
3,然后找到
并把它修改为:
1.< ?php if($postcnt== 1) : ?><BR>< ?php the_content(); ?><BR>//
这里还可以放一个广告,效果很好的位置.<BR>< ?php else : ?><BR>< ?php the_excerpt(); ?><BR>< ?php
endif; $postcnt++; ?>
上传以后需要到你的wordpress后台设置为输出样式,输出全文则第一篇为全文,输入摘要则显示< !-more->标签之前内容。< ?php
the_excerpt(); ?>是输出去掉html以后的文字的函数,不过对中文不是很友好,建议配合使用Yskin's
wp-CJK-excerpt来解决摘要的问题,也可使用中文WordPress工具箱或其他摘要算法的插件。
这只是首页,同样可以适用到目录页,搜索页等,只需修改相应文件即可。