0

私は次のことについていくつかのアドバイスを期待していました。

私のホームページでは、1つ(カテゴリ11)を除くすべてのカテゴリのすべての投稿を一覧表示し、3番目の投稿ごとにカテゴリ11の投稿を挿入したいと思います。

例えば

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」からの投稿)

ページネーションなどの投稿をしている間、すべてがその中に住んでいる必要があります。

誰かがこれを行うための最良の方法についてアドバイスできますか?

4

2 に答える 2

1

これを実現するには、複数のループが必要です。カテゴリ 11 から投稿を取得する別のインスタンスを作成する必要がありWP_Queryます。その後、カテゴリ 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();
}
于 2012-04-15T13:15:16.660 に答える
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);

?>
于 2012-04-15T13:15:18.557 に答える