WP_query și paginare?

17 oct. 2011, 13:51:34
Vizualizări: 16K
Voturi: 0

Trebuie să obțin niște posturi personalizate și am nevoie să fac asta cu WP_Query (query_posts nu funcționează).

Cum pot implementa paginarea? Orice am încercat nu a funcționat... orice ajutor ar fi minunat, nu reușesc să rezolv singur...

$args = array(  
'tax_query' => array(  
   'posts_per_page' => 5,  
    array(  
    'author' => $user_id,  
        'taxonomy' => 'custom_taxtype',  
        'field' => 'slug',  
        'terms' => 'delicious-food',  
    )  
)   
);   
$answer_query = new WP_Query( $args );  

//// Parcurgem rezultatele  

while ( $answer_query->have_posts() ) : $answer_query->the_post();  

//// facem ceva  

endwhile;  
4
Comentarii

Adaugă argumentul paged => 1,2...n, și cred că posts_per_page, precum și paged ar trebui să fie în afara array-ului tax_query.

soulseekah soulseekah
17 oct. 2011 13:56:56

Mulțumesc, tocmai am făcut asta, acum pot limita postările. Acesta este un prim pas!

deltakid deltakid
17 oct. 2011 14:27:51

Ai adăugat paged și l-ai setat la numărul paginii pe care o cauți?

soulseekah soulseekah
17 oct. 2011 14:30:40

Am setat-o, dar cu ea pot doar să aleg ce pagină doresc și nu pot face paginarea să funcționeze. Folosesc funcția obișnuită WordPress next_posts_link(); pentru paginare.

deltakid deltakid
17 oct. 2011 14:33:00
Toate răspunsurile la întrebare 2
2

DACĂ schimbi $my_query în $wp_query ar trebui să funcționeze. Codul din funcțiile interne WordPress next_posts_link și previous_posts_link se așteaptă ca obiectul de interogare să se numească $wp_query.

13 mar. 2013 16:18:10
Comentarii

Făcând acest lucru, suprascrii și interogarea principală, ceea ce poate avea consecințe neintenționate. Poți edita răspunsul pentru a explica cum să eviți această problemă? De asemenea, este mai bine să postezi cod care funcționează plauzibil în răspuns.

s_ha_dum s_ha_dum
13 mar. 2013 16:40:10

wow.. ce sfat minunat!

Stavros Stavros
28 oct. 2021 22:58:02
4

Dacă ne puteți spune exact ce încercați să realizați, vă putem ajuta mai bine!

<?php
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$args = array(
               'post_type' => 'question',
               'posts_per_page' => -1,
               'paged' => $paged,
               'author' => $user_id
            );
$my_query = new WP_Query($args);

if($my_query->have_posts()):
    while($my_query->have_posts()):$my_query->the_post();
        //Bucla se execută aici...
    endwhile;
    //suport pentru pluginul page-navi, consultați readme.txt pentru instrucțiuni suplimentare
    if ( function_exists('wp_pagenavi') )
    {
        wp_pagenavi();
    }
    elseif ( get_next_posts_link() || get_previous_posts_link() )
    {
        ?>
        <div class="wp-navigation clearfix">
            <div class="alignleft"><?php //next_posts_link('&laquo; Older Entries'); ?></div>
            <div class="alignright"><?php //previous_posts_link('Newer Entries &raquo;'); ?></div>
        </div>
<?php } //if wp_pagenavi
endif;
?>

Consultați documentația WP_Query pentru mai mulți parametri.

Apropo, query_posts funcționează și cu postări personalizate, deoarece acceptă toți parametrii pe care îi puteți transmite către WP_Query.

17 oct. 2011 14:07:18
Comentarii

Mulțumesc Ruwick. Vreau doar să obțin toate articolele dintr-un format personalizat de postare numit întrebări, iar acest format personalizat de postare are diferite categorii care sunt definite ca termeni personalizați. Cu interogarea de mai sus pot obține cele mai recente postări pentru un anumit termen personalizat, dar nu pot face ca paginarea să funcționeze.

deltakid deltakid
17 oct. 2011 14:28:54

Ai instalat WP-Pagenavi? Am omis acea parte, verifică codul nou din răspunsul meu. Am adăugat partea de paginare.

Rutwick Gangurde Rutwick Gangurde
17 oct. 2011 14:35:12

Mulțumesc mult! Da, acum funcționează. Am modificat puțin codul și am folosit acum codul de la layotte de mai jos. http://wordpress.org/support/topic/adding-pagination-to-a-wp_query-loop?replies=16

deltakid deltakid
17 oct. 2011 14:45:32

Treabă excelentă! :)

Rutwick Gangurde Rutwick Gangurde
17 oct. 2011 14:46:45