每三个帖子就从排除的类别中拉出.WordPress


Every third post pull from excluded category. WordPress

我希望在以下方面得到一些建议。

在我的主页上,我想列出除一个(类别 11)之外的所有类别的所有帖子,并每三个帖子插入类别 11 帖子。

例如

帖子 1(从类别"2"发布)

帖子 2(从类别"7"发布)

帖子 3(从"11"发布)

帖子 4(从类别"5"发布)

帖子 5(从类别"7"发布)

帖子 6(从"11"发布)

帖子 7(从类别"7"发布)

第8个员额(从"1"类中发帖)

帖子 9(从"11"发布)

这一切都需要生活在其中,而帖子用于分页等。

有人可以建议最好的方法吗?

您需要多个循环才能实现此目的。您必须创建另一个WP_Query实例,该实例将从类别 11 中获取帖子。然后,正常循环浏览所有其他帖子,同时计数并检查是否显示类别 11 的帖子。

$page_query_var = 'page';
$post_cat_10 = new WP_Query('cat=10' . '&paged=' . get_query_var($page_query_var));
$other_posts = new WP_Query('cat=-10' . '&paged=' . get_query_var($page_query_var));
for ($i = 1; $other_posts->have_posts(); $i++)
{
    if ($i % 3 === 0 AND $post_cat_10->have_posts())
    {
        $post_cat_10->the_post();
    }
    else
    {
        $other_posts->the_post();
    }
    the_title();
    the_content();
}

您只需输出每个 POST,但数组中的数字可以除以 3。向您展示可能更容易:

<?php
//Make your SQL-statement within the $result variable
$i = 0;
while( $row = mysql_fetch_assoc($result)) {
    $i++;
    if( $i % 3 > 0) {
        $output[] = $row['COLUMN_NAME'];
    }
}
echo implode("<br>'n", $output);
?>