当书写wordpress主题的时候, 客户可能会要求Google广告做为一篇日志显示,比如post #2, 或是第一篇日志拥有不同的背景颜色, 或是一些文章只显示标题. 如果仅仅使用单个 Loop你不能实现这些功能,所以本文将告诉你如何使用多个loop来显示不同的日志列表。
那究竟什么是Loop呢?
“Loop是用来显示你的Wordpress中的每一篇日志。使用Loop, WordPress 处理每篇日志,让其显示在当前页面,并基于他们在Loop标签内匹配的标准来进行日志格式化. 如果你要代码在每篇日志里面都显示,则任何 html 和PHP代码都必须放在Loop的开始和结束标签之内.”
来自: WordPress.org
换句话说, Loop是你的Wordpress页面中的一段代码,它重复匹配所有的日志,构成 “loops”,下面是一个示例:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h3><?php the_title(); ?></h3>
<div class="entry">
<?php the_content('Read more ?'); ?>
</div>
Posted on <?php the_time('F jS, Y') ?> in <?php the_category(', '); ?>
<?php endwhile; endif; ?>
第一行和最后一行就是loop的开始和结束标记. Loop里面的所有代码重复每一篇文章. 上面的代码所产生的结果就是:
<h3>Post Title</h3>
<div class="entry">
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed mauris magna, accumsan at, commodo vitae, lacinia nec, odio. Sed non nulla a tellus rutrum cursus.</p>
</div>
Posted on July 29, 2007 in <a href="#">Tutorials</a>
这个格式现在将重复显示每一篇文章得到一个日志列表.
现在,我们似设要在首页显示5篇文章,同时显示第一篇日志的内容, 接着的4篇日志只显示标题和日期. 要做到这一点, 我们将引入第二个Loop使用不同的内容风格. 比如:
<?php query_posts('showposts=1‘); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h3><?php the_title(); ?></h3>
<div class="entry">
<?php the_content('Read more ?'); ?>
</div>
Posted on <?php the_time('F jS, Y') ?> in <?php the_category(', '); ?>
<?php endwhile; endif; ?>
上面的代码将只显示最后的一篇日志. 蓝色部分的代码就是所要显示的日志数.
接下来,我们再为接着的4篇文章创建一个loop,并且只显示日期和标题,使用下面的代码:
<?php query_posts('showposts=4&offset=1‘); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h2><?php the_title(); ?></h2>
Posted on <?php the_time('F jS, Y') ?> in <?php the_category(', '); ?>
<?php endwhile; endif; ?>
注意桔色的代码部分. 我们要显示4篇最新的文章, 并且排除第一篇文章, 因为第一篇文章我们已经显示了. 放置这两段代码在一起,你将得到的就是:
<h3>Post Title</h3>
<div class="entry">
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed mauris magna, accumsan at, commodo vitae, lacinia nec, odio. Sed non nulla a tellus rutrum cursus.</p>
Posted on July 29, 2007 in <a href="#">Tutorials</a><h2>Another Post</h2>
Posted on July 29, 2007 in <a href="#">Tutorials</a>
<h2>A Third Post</h2>
Posted on July 29, 2007 in <a href="#">Tutorials</a>
<h2>A Fourth Post</h2>
Posted on July 29, 2007 in <a href="#">Tutorials</a>
<h2>One More Post</h2>
Posted on July 29, 2007 in <a href="#">Tutorials</a>
你也可以使用双重Loop,在确定的文章数目后显示Google广告:
<?php query_posts('showposts=2'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h2<?php the_title(); ?></h2>
Posted on <?php the_time('F jS, Y') ?> in <?php the_category(', '); ?>
<?php endwhile; endif; ?><!-- google ad script -->
(Google ads here)
<?php query_posts('showposts=3&offset=2'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h2><?php the_title(); ?></h2>
Posted on <?php the_time('F jS, Y') ?> in <?php the_category(', '); ?>
<?php endwhile; endif; ?>
这些代码将输出得到下面的结果:
<h2>First Post</h2>
Posted on July 29, 2007 in <a href="#">Tutorials</a><h2>Second Post</h2>
Posted on July 29, 2007 in <a href="#">Tutorials</a>
<h4>Google Ads</h4>
<h2>Third Post</h2>
Posted on July 29, 2007 in <a href="#">Tutorials</a>
<h2>Fourth Post</h2>
Posted on July 29, 2007 in <a href="#">Tutorials</a>
<h2>Fifth Post</h2>
Posted on July 29, 2007 in <a href="#">Tutorials</a>
原文: modifying-individual-posts-in-the-loop
翻译: 帕兰
来源于 精通WordPress主题-1: 修改特定日志的样式和内容 | 帕兰映像
没有评论:
发表评论