北极寒流 » 网络资源 » 让WordPress首页前几篇文章与后几篇文章输出不一样 - 2014.10.27

让WordPress首页前几篇文章与后几篇文章输出不一样

让WordPress首页前几篇文章与后几篇文章输出不一样,我这要讲的可能有点不大好理解,简单的说来就是想实现例如WordPress首页第一篇(或前几篇)文章只显示缩略图和摘要,后面几篇文章显示标题和摘要(不显示缩略图了)。一种方法是单独请求每篇文章数据,另一种就是用一个循环标识数字来控制。第一种方法麻烦,不是特殊情况下用不到,第二种方法则可能会经常用到。比如,添加广告,控制第X篇文章的标题、tag、category,甚至前半部分与后半部分文章输出内容格式的不同(摘要与截断)等。

方法就是在主循环开始前加上一个$count = 1; 变量。然后在循环主体中,想要改变第n篇文章的不同则在循环部分前面加上

<?php if ($count == n) : ?>
//你的代码
<?php endif;$count++; ?>

例如我们想实现如页面八篇文章,要让前三篇显示more截断,后面五篇只显示标题。可以这么做:

<?php if (have_posts()) : $count=1;while (have_posts()) : the_post(); ?>
<div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
<h2><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2>
<small><?php the_time(__('F jS, Y')) ?></small>
<?php if($ count == 1 || $ count == 2  || $ count == 3 ) : ?>
<div class="entry">
<?php the_content(__('Read more &raquo;')); ?>
</div>
<?php endif;$count++; ?>
</div>
<?php endwhile;endif; ?>

将more截断输出内容包含在if语句中,所以只有前三篇会显示more截断内容,后面的都不会显示了,只剩下标题和发表时间。如果你有其他需要,例如让前三篇的标题和后五篇不一样,那你可以在标题循环前,即<h2>标签前面加上if判断定义前三篇的标题。注意不要加到<h2>标签后,因为网页解析是从上自下,加载后面会不起效。

利用上面的方法我们还可以实现例如第几篇文章后自动插入广告代码等等功能。

27

让WordPress首页前几篇文章与后几篇文章输出不一样

分享到:

最受欢迎的