0

我想在帖子获取循环期间在我的主页上加载我最近的帖子、我的第三个帖子和我的第 7 个最新帖子:

<?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>

post_in 部分可以让您到达那里,但帖子 ID 与您的帖子的新近程度无关,所以我怀疑它是否会以更好的理解来解决问题。

$query = new WP_Query( array('post__in' => array( 2, 5, 12, 14, 20 ) ) );

有没有办法加载最新的帖子,最近的第三个和最近的第七个?

提前非常感谢!

4

2 回答 2

1

这是基本模型。每个循环增加一个变量 ($i),然后仅在该变量是第一个、第四个或第七个循环时使用 if 语句执行代码。

$i = 0;
$query = new WP_Query($args);
foreach ($query as $loop) {
    $i++;
    if ($i == 1 || $i == 4 || $i == 7) {
        # code...
    }
}

如果用户要实际设置它们,您可以使用本机“in_array”函数来完成。也许在元框中,主题选项或一些时髦的东西。

$array = array($featured_post, $worst_post, $amazing_post)

$i = 0;
$query = new WP_Query($args);
foreach ($query as $loop) {
    $i++;
    if ( in_array($i, $array) ) {echo 'counts equals your numbers';}
}

另请注意,WP 为您提供了许多可供查询的数组参数。

'offset' => 5 //begins your new loop at the 5th post in this case. 
'orderby' => 'post_date' // default (I believe)
'order' => 'DESC' // default (I believe)
于 2013-09-16T21:33:25.873 回答
0

我是否理解您是否正确,您希望有两个循环,一个是您获取 3 个最新帖子的地方,另一个是您获取 7 个最新帖子的地方?如果是这样,您可以执行 WP_Query 并传入有关如何使用“order”和“orderby”对查询进行排序的参数。

$args = array(
    'posts_per_page' => 3, // get three posts
    'order' => 'DESC', // Order ascending or decending, use desc for latest.
    'orderby' => 'date' // Tell our query to sort by date.
);

$query = new WP_Query($args);

if($query->have_posts()) : while($query->have_posts()) : $query->the_post();
    // Do what you want with your 3 latest posts.
endwhile; endif;

请参阅 WP_Query 上的文档以获取参考。http://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters

如果我误解了你的问题,请告诉我!

于 2013-08-13T14:28:59.553 回答