Я попробовал этот способ, чтобы отобразить НЕТ сообщения:
<?php
$news_2 = new WP_Query( array ('post_type'=> 'jobs','posts_per_page'=> '10' , 'meta_key' => 'status_for_jobs','meta_value' => '1') );
if ( $news_2->have_posts() ) { while ( $news_2->have_posts() ) { $news_2->the_post();
$count = $news_2->post_count;
?>
<li><h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3></li>
<?php } } ?> <?php wp_reset_query(); ?>
если НЕТ поста = 0, мне нужно отобразить это: -
<?php
$news_2 = new WP_Query( array ('post_type'=> 'jobs','posts_per_page'=> '10' , 'meta_key' => 'status_for_jobs','meta_value' => '1') );
if ( $news_2->have_posts() ) { while ( $news_2->have_posts() ) { $news_2->the_post();
$count = $news_2->post_count;
if ($count == '0') {
?>
<li><h3><a href="javascript:void(0)">No Post</a></h3></li>
<?php
} else {
?>
<li><h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3></li>
<?php } ?>
<?php } } ?> <?php wp_reset_query(); ?>
Но вместо общего количества постов я ничего не получаю.
Любые предложения, чтобы это исправить?
Ответы:
Некоторая дополнительная информация, не нужно пересчитывать сообщения снова, потому что
WP_Query
уже сделал это для вас. Чтобы прояснить это, некоторая информация из ссылки на классWP_Query
находится в разделе «Свойства»:Что это значит
$post_count
не даст вам общее количество сообщений. Скорее всего, он даст вам количество сообщений, которые вы определили с помощьюpost_per_page
параметра, если только у вас меньше сообщений, чем это, или вы находитесь на последней странице, и осталось только меньше сообщений.$found_posts
может использоваться для получения общего количества сообщений, связанных с конкретным запросом. Так что нет необходимости пересчитывать их снова.В вашем случае вы можете получить общее количество в вашей
$count
переменной следующим образом:Кроме того, @helgatheviking прав в том, что из того, что вы показали в своем вопросе, вам не нужно дополнительное условие, но вы можете просто использовать
have_posts()
метод, в том условии, которое у вас уже есть, для этого, как она предложила.источник
Вам не нужно считать посты, чтобы показать что-то другое, если посты не найдены. Вы можете просто использовать
else
часть вашегоif($news_2->have_posts())
чека.Но если вам действительно нужно посчитать количество возвращенных постов, вы можете использовать
источник