我很难写出我正在制作的杂志版面的PHP。
这是原型:http://socalnpo.org
以下是我目前拥有的:http://socalnpo.org/wp
前3个是最新的(从左到右),后6个是较旧的。它们都是按相反的时间顺序排列的。
我不知道如何编写PHP for the loop,因为它绝对不像一篇基本的文章。
这是我到目前为止所掌握的内容,但PHP的内容确实不多,因为我不知道从哪里开始。
<a href="<?php the_permalink() ?>" rel="bookmark">
<?php
if ( has_post_thumbnail() ) {
the_post_thumbnail(\'medium\');
}
?></a>
<h1><a href="<?php the_permalink() ?>" rel="bookmark">
<?php the_title(); ?></a></h1>
<?php the_excerpt(); ?></div>
<?php endwhile; ?>
我只是需要在正确的方向上得到一些帮助才能做到这一点,因为我已经被困在这个问题上好几天了。
我希望有一种方法可以隔离最后9个单独的帖子,这样我就可以把它们强制放到自己的帖子中<div>
让它变得简单一点,尽管它会更加乏味。
让我知道你的想法!
任何帮助都将不胜感激!:)
-达纳
最合适的回答,由SO网友:Chris_O 整理而成
如果您只显示最近的9篇文章,那么没有理由需要2个循环或以任何方式更改查询。可以使用循环计数器创建所需的额外div。
<div id="featured">
<?php $count = 0;
if (have_posts()) : while (have_posts()) : the_post();
$count++;
if ( $count < 4 ) { //display of first 3 posts ?>
<div id="featured-<?php echo $count; ?>">
<?php //do stuff here ?>
</div>
<?php }
if ( $count == 4 ) { //closes the featured div adds the links in the center then opens the columns div ?>
</div> <!-- /close the featured div -->
<div id="recent">
<hr>
<ul>
<li>Recent News</li>
<li>View more news...</li>
</ul>
<div id="columns">
<?php }
if ( $count > 3 && $count < 10 ) { //Next 6 posts ?>
<div id="recent-<?php echo $count - 3 ?>">
<?php //do stuff here ?>
</div>
<?php }
endwhile; endif; ?>
</div> <!-- /end columns -->
您需要确保阅读设置设置为每页显示9篇文章,或者创建一个新的wp\\U查询,将每页的文章数设置为9。
$count变量将决定在WordPress通过循环时如何显示帖子。当$count=4时,我们会在页面中间显示所需的额外div和html。
SO网友:Nick
在我看来,最好的方法是使用两个单独的循环。您可以为前三个循环使用默认循环,然后为“最近的新闻”创建另一个循环到目前为止,您所拥有的将适用于默认循环,假设您拥有while (have_posts()) :
在第一个标记开始之前开始循环。对于第二个循环,您可以执行以下操作
<div>
<?php global $post;
$args = array(\'tag\' => \'featured\');
$custom_posts = get_posts($args);
foreach($custom_posts as $post) : setup_postdata($post);
// insert your title, excerpt, post thumbnail code here
endforeach;
?>
</div>
本质上,这将抓取您标记为“特色”的任何帖子,并将它们扔到该分区中
codex page on wp_query. 这比只抓取最新的帖子要好,因为这样你就可以在该div中添加任何你标记为特色的帖子。