Obține numărul postărilor din bucla curentă când folosești interogări multiple pe o pagină

16 oct. 2011, 21:17:01
Vizualizări: 116K
Voturi: 16

Încerc să obțin numărul postărilor din interiorul unei bucle. Folosesc bucle multiple pe o singură pagină în tema mea. Până acum am:

$my_post_count = $wp_query->post_count;

Dar când afișez $my_post_count, îmi returnează numărul tuturor postărilor din site-ul meu WP. Ar putea avea legătură cu faptul că folosesc interogări multiple pe o singură pagină? Am încercat să folosesc wp_reset_query după fiecare buclă pentru a mă asigura că nu stric lucrurile în acest fel. Ce fac greșit?

0
Toate răspunsurile la întrebare 4
1
38

$wp_query conține bucla principală a paginii și nu ar trebui folosit pentru a crea bucle multiple.

Dacă folosești un nou obiect WP_Query, atunci variabila care îl conține va avea numărul corespunzător:

$my_query = new WP_Query();
// operații
$count = $my_query->post_count;

Dacă folosești get_posts(), atunci obiectul WP_Query nu este accesibil și ar trebui să numeri setul returnat:

$posts = get_posts();
$count = count($posts);
17 oct. 2011 00:02:28
Comentarii

Notă: Dacă te afli în bucla principală, poți accesa WP_Query prin global $wp_query

mrmadhat mrmadhat
22 oct. 2019 11:45:48
0

Cred că post_count este stocat în global, așa că înainte de bucla personalizată ar trebui să îl setezi la 0, deoarece îl poți folosi în afara buclei, dar asta depinde de cum îți structurezi interogările multiple, poate le poți adăuga la postarea ta?

Există o altă metodă pe care o folosesc în cadrul buclei care numără postările folosind current_post + 1, de exemplu.

<?php $my_query = new WP_Query();?>
     <?php if ($my_query->have_posts()) :while ($my_query->have_posts()) : $my_query->the_post();

           $count_posts = $my_query->current_post + 1; //numara postarile in bucla

     endwhile;?>
16 oct. 2011 23:54:30
2

O soluție alternativă folosind WP_Query ar fi:

           <?php 
               $args = array(
               'post_type' => 'post'
               );
            $the_query = new WP_Query( $args );
            $totalpost = $the_query->found_posts; 
            ?> 
21 mai 2019 11:56:27
Comentarii

Acest lucru este mai bun dacă utilizați paginare și doriți totalul complet al tuturor paginilor.

Jake Jake
11 ian. 2023 15:20:31

found_posts este mai bun dacă utilizați paginare și doriți totalul complet al tuturor paginilor.

Jake Jake
11 ian. 2023 15:21:39
1

Modalitate simplă de a număra totalul postărilor inclusiv paginarea

<?php  global $wp_query
   echo $wp_query->found_posts; ?>
8 mai 2019 13:17:02
Comentarii

found_posts este mai bun dacă utilizați paginare și doriți totalul complet al tuturor paginilor.

Jake Jake
11 ian. 2023 15:21:31