WP_query e paginazione?

17 ott 2011, 13:51:34
Visualizzazioni: 16K
Voti: 0

Devo recuperare alcuni custom post type e ho bisogno di farlo con WP_Query (query_posts non funziona).

Come posso implementare la paginazione? Qualsiasi cosa abbia provato non ha funzionato... qualsiasi aiuto sarebbe fantastico, non riesco a risolverlo da solo...

$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 );

//// Ciclo attraverso i risultati

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

//// fai qualcosa

endwhile;
4
Commenti

Aggiungi l'argomento paged => 1,2...n, e penso che posts_per_page, così come paged dovrebbero essere fuori dall'array tax_query.

soulseekah soulseekah
17 ott 2011 13:56:56

Grazie, sì, l'ho appena fatto, ora posso limitare i post. Questo è un primo passo!

deltakid deltakid
17 ott 2011 14:27:51

Hai aggiunto paged e impostato il numero della pagina che stai cercando?

soulseekah soulseekah
17 ott 2011 14:30:40

L'ho impostato ma posso solo selezionare quale pagina voglio e non riesco a far funzionare l'impaginazione. Uso la normale funzione WordPress next_posts_link(); per l'impaginazione.

deltakid deltakid
17 ott 2011 14:33:00
Tutte le risposte alla domanda 2
2

SE modifichi $my_query in $wp_query dovrebbe funzionare. Il codice nelle funzioni interne di WordPress next_posts_link e previous_posts_link si aspetta che l'oggetto della query si chiami $wp_query.

13 mar 2013 16:18:10
Commenti

Facendo questo sovrascrivi anche la query principale, il che può causare conseguenze indesiderate. Puoi modificare la risposta per spiegare come evitare questo problema? Inoltre, è meglio pubblicare nella risposta un codice che plausibilmente funzioni.

s_ha_dum s_ha_dum
13 mar 2013 16:40:10

wow... che consiglio fantastico!

Stavros Stavros
28 ott 2021 22:58:02
4

Se puoi dirci esattamente cosa stai cercando di ottenere, possiamo aiutarti meglio!

<?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();
        //Il loop va qui...
    endwhile;
    //supporto per il plugin page-navi, consulta readme.txt per ulteriori istruzioni
    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; Articoli più vecchi'); ?></div>
            <div class="alignright"><?php //previous_posts_link('Articoli più recenti &raquo;'); ?></div>
        </div>
<?php } //if wp_pagenavi
endif;
?>

Consulta la documentazione di WP_Query per ulteriori parametri.

A proposito, query_posts funziona anche con i post personalizzati, poiché accetta tutti i parametri che puoi passare a WP_Query.

17 ott 2011 14:07:18
Commenti

Grazie Ruwick. Voglio solo ottenere tutti i post da un formato di post personalizzato chiamato "questions" e questo formato di post personalizzato ha diverse categorie definite come termini personalizzati. Con la query precedente posso ottenere gli ultimi post per un certo termine personalizzato, ma non riesco a far funzionare la paginazione.

deltakid deltakid
17 ott 2011 14:28:54

Hai installato WP-Pagenavi? Ho saltato quella parte, controlla il nuovo codice nella mia risposta. Ho aggiunto la parte relativa alla paginazione.

Rutwick Gangurde Rutwick Gangurde
17 ott 2011 14:35:12

Grazie mille! Sì, ora funziona. Ho modificato leggermente il codice e ho usato il codice di layotte qui sotto. http://wordpress.org/support/topic/adding-pagination-to-a-wp_query-loop?replies=16

deltakid deltakid
17 ott 2011 14:45:32

Ottimo lavoro amico! :)

Rutwick Gangurde Rutwick Gangurde
17 ott 2011 14:46:45