Próbowałem w ten sposób wyświetlić liczbę postów:
<?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(); ?>
jeśli liczba post = 0, muszę to wyświetlić: -
<?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(); ?>
Ale zamiast łącznej liczby postów nic nie dostaję.
Wszelkie sugestie, aby to naprawić?
Odpowiedzi:
Niektóre dodatkowe informacje, nie trzeba ponownie liczyć postów, ponieważ
WP_Query
już to zrobiłem dla Ciebie. Aby to wyjaśnić, niektóre informacje z odwołania do klasyWP_Query
znajdują się w sekcji »Właściwości«:To znaczy
$post_count
nie poda całkowitej liczby postów. Najprawdopodobniej poda liczbę postów, które zdefiniowałeś za pomocą tegopost_per_page
parametru, chyba że masz mniej postów lub jesteś na ostatniej stronie i pozostało tylko mniej postów.$found_posts
można użyć, aby uzyskać łączną liczbę postów związanych z określonym zapytaniem. Dlatego nie trzeba ich ponownie liczyć.W twoim przypadku możesz zapisać całkowitą liczbę do swojej
$count
zmiennej w następujący sposób:Poza tym @helgatheviking ma rację, że z tego, co pokazałeś w swoim pytaniu, nie potrzebujesz dodatkowego warunku, ale możesz po prostu użyć
have_posts()
metody, w warunku, który już masz, jak sugerowała.źródło
Nie musisz liczyć postów, aby pokazać coś innego, jeśli nie zostaną znalezione. Możesz po prostu użyć
else
częściif($news_2->have_posts())
czeku.Ale jeśli naprawdę musisz policzyć liczbę zwróconych postów, możesz użyć
źródło