WP_QUERY和杂志首页循环帮助

时间:2011-12-07 作者:DanaOira

我很难写出我正在制作的杂志版面的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> 让它变得简单一点,尽管它会更加乏味。

让我知道你的想法!

任何帮助都将不胜感激!:)

-达纳

2 个回复
最合适的回答,由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中添加任何你标记为特色的帖子。

结束

相关推荐

Echo author ID in author.php

这可能是一个非常简单的问题。但是我如何在author上回显用户的ID呢。php?我试过了the_author_meta(\'ID\') 但它似乎不想起作用。例如,我想在URL的末尾回显它;http:///www.domain.com/author/sampleauthor-id显然,其中“id”是特定作者的id有什么想法吗?