2012-04-15 2 views
0

Я надеялся на некоторые советы по следующему.Каждое третье сообщение тянет из категории исключенных. WordPress

На моей домашней странице я хочу перечислить все сообщения из всех категорий, кроме одного (категория 11), и вставить категорию 11 сообщений на каждый третий пост.

например.

ПОСТ 1 (Сообщение из категории '2')

ПОСТ 2 (Сообщение от категории '7')

ПОСТ 3 (сообщение от '11')

ПОСТ 4 (сообщение от категории '5')

POST 5 (сообщение от категории '7')

POST-6 (Сообщение от '11')

POST 7 (сообщение из категории '7')

POST-8 (сообщение из категории '1')

POST-9 (сообщение от ' 11')

все должно жить в то время как сообщения для пагинацией и т.д.

Может кто-то посоветовать на лучший способ сделать это?

ответ

1

Для этого необходимо multiple loops. Вам придется создать еще один экземпляр 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(); 
} 
+0

Nice! будет ли это работать со стандартной разбивкой по страницам Wordpress? – user1315018

+0

@ user1315018 Да, я так считаю. Вы можете проверить документацию более подробно, если хотите. http://codex.wordpress.org/Class_Reference/WP_Query#Pagination_Parameters –

+0

он работает для кошек 11 сообщений, хотя я ничего не могу вывести. – user1315018

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); 

?> 
+1

Речь идет о 'WordPress' не сырой PHP. –

+0

Я вижу, что на ваш ответ - ОП не упоминал об этом в своем вопросе. – hskrijelj

+0

Да, я знаю. Но он поместил 'wordpress' в теги. –

Смежные вопросы