2013-10-10 3 views
6

Есть ли способ, чтобы получить количество элементов в коде цикла Wordpress:Wordpress цикл - как считать элементы

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

Этот цикл перечислены сообщения. Мне нужно добавить определенные классы к первому 3 в зависимости от их общего числа.

ответ

13

Вы можете использовать post_count property из $WP_Query, например, так:

$wp_query->post_count 

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

+0

Спасибо вам обоим за ответы. Это ближе к тому, что мне нужно. Возможно, я не был достаточно точным. Мне нужно количество предметов независимо от того, сколько их там. Затем мне нужно добавить классы к первому 3 или меньше, если общее количество <3 - но это не должно быть частью вопроса. –

+0

Вы также можете использовать '$ items = count ($ posts)', если хотите :) –

+0

Пятно на! 'found_posts' был для меня. Благодаря! – daneczech

12

Вот один из способов это сделать:

<?php 
$count = 0; //set up counter variable 
while (have_posts()) : the_post(); 
$count++; //increment the variable by 1 each time the loop executes 
if ($count<4) { 
    // here put the special code for first three 
} 
// here put the code for normal posts 
endwhile; 
?> 
+1

OP требует общего количества сообщений в цикле, а не текущего индекса. – Sunyatasattva

+1

@Sunyatasattva «Мне нужно добавить определенные классы к первым 3» - ему нужно подсчитать и проверить, если его меньше 4, чтобы добавить к ним специальные классы ... downvote? действительно? –

+1

Сразу после цитируемого предложения * «в зависимости от их общего числа». * Ему просто не нужно добавлять классы в первые три, эти классы будут зависеть от общего числа. Я отказался, потому что это не отвечает на вопрос. Сдвиг всегда можно вернуть, если вы отредактируете ответ, чтобы фактически решить проблему OP. – Sunyatasattva

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