每三个帖子来自排除类别。 WordPress的

时间:2012-04-15 12:38:22

标签: php wordpress

我希望对以下内容提出一些建议。

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

e.g。

  

POST 1(从类别'2'发布)

     

POST 2(从类别'7'发布)

     

POST 3(从'11'发布)

     

POST 4(从类别'5'发布)

     

POST 5(从类别'7'发布)

     

POST 6(从'11'发布)

     

POST 7(从类别'7'发布)

     

POST 8(从类别'1'发布)

     

POST 9(从'11'发布)

这一切都需要在分页等帖子中生活。

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

2 个答案:

答案 0 :(得分:1)

您需要multiple loops才能实现此目标。您必须创建另一个WP_Query实例,它将从类别11中获取帖子。然后,在计数和检查是否显示第11类的帖子时,通常循环浏览所有其他帖子。 / p>

$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();
}

答案 1 :(得分:0)

您只需输出每个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);

?>