La paginazione con custom post type non funziona

3 lug 2011, 05:40:16
Visualizzazioni: 24K
Voti: 7

Per qualche motivo non riesco a far funzionare la paginazione usando previous_posts_link e next_posts_link.

Ecco il codice che ho...

<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>

<?php // La Query
$the_query = new WP_Query(
array(
    'post_type'=>'article',
    'posts_per_page'=>2,
    'orderby'=>'date',
    'paged'=>$paged
)
);

// Il Loop
while ( $the_query->have_posts() ) : $the_query->the_post();

if($the_query->current_post == 0 && $paged == 1) :
?>
<article class="latest">
    <div class="summary">
        <h4>ULTIMO ARTICOLO:</h4>

        <h2><?=the_title(); ?></h2>
        <div class="entry-meta">
            <?php proagent_posted_on(); ?>
        </div><!-- .entry-meta -->
        <div class="entry-content">
            <?=get_the_content_limit(300, 'Altro'); ?>

        </div><!-- .entry-content -->

        <div class="entry-topics"><?=get_the_term_list($post->ID , 'topics', 'Argomenti: ',', '); ?></div>
    </div>
    <?=the_post_thumbnail('feature-post-thumbnail'); ?>
</article>

<?php else: ?>
<article class="previous">
    <?=the_post_thumbnail(); ?>
    <div class="summary">
        <h2><?=the_title(); ?></h2>
        <div class="entry-meta">
            <?php proagent_posted_on(); ?>
        </div><!-- .entry-meta -->
        <div class="entry-content">
            <?=get_the_content_limit(300, 'Altro'); ?>

        </div><!-- .entry-content -->

        <div class="entry-topics"><?=get_the_term_list($post->ID , 'topics', 'Argomenti: ',', '); ?></div>
    </div>
</article>
<?php endif; ?>

<?php endwhile; ?>
<nav id="nav-below" class="navigation">
    <div class="alignleft"><?php previous_posts_link('« Articoli più recenti') ?></div>
    <div class="alignright"><?php next_posts_link('Articoli più vecchi »') ?></div>
</nav><!-- #nav-below -->

Inoltre... ho appena notato che funziona quando vado su /articles/page/2 c'è un link a /articles/ come dovrebbe essere, ma dalla pagina /articles/ non c'è alcun link alla pagina 2.. PERCHÉ?

PER FAVORE aiutatemi se potete... questa cosa mi sta facendo impazzire.

Grazie! mark.

2
Commenti

In quale contesto stai cercando di far funzionare questo codice? Template di pagina? Template di categoria? index.php? Questo può avere implicazioni importanti per il codice.

tollmanz tollmanz
3 lug 2011 07:35:16

È un template personalizzato per categoria di post. Sto cercando di mostrare elementi nel mio custom post type chiamato "articles" e questa è la home page degli articoli. Ho definito una pagina, chiamata anche articles.php, in cui sto scrivendo il codice. Qualsiasi aiuto sarebbe veramente, veramente, veramente apprezzato

markstewie markstewie
3 lug 2011 12:14:19
Tutte le risposte alla domanda 2
3
13

il tuo slug della pagina deve essere diverso dal nome del tipo di post personalizzato

9 giu 2016 15:38:08
Commenti

Per favore pubblica come commento o altrimenti spiega un po' come funziona.

bravokeyl bravokeyl
9 giu 2016 15:39:06

Funziona perfettamente, grazie!

Rangel R. Morais Rangel R. Morais
2 mar 2020 21:15:34

page-slug può essere uguale al nome del custom post type: https://wordpress.stackexchange.com/questions/135146/resolve-a-custom-post-type-name-vs-page-permalink-conflict-same-slug

Robin Huy Robin Huy
26 ott 2022 07:18:05
1

La paginazione funziona solo se l'attributo paged nella variabile globale $wp_query è impostato. Puoi memorizzare manualmente la tua query in questa globale oppure utilizzare query_posts() invece di new WP_Query().

<?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $the_query = query_posts(
        array(
            'post_type'=>'article',
            'posts_per_page'=>2,
            'orderby'=>'date',
            'paged'=>$paged
        )
    );
    // ...
?>

La funzione query_posts() cancellerà un'eventuale variabile globale $wp_query esistente, eseguirà una nuova WP_Query() e memorizzerà nuovamente il risultato nella variabile globale $wp_query.

3 lug 2011 17:35:14
Commenti

Questo è un vecchio articolo. Per chi legge questa risposta, tenete presente che ci sono nuove informazioni su WordPress.org. https://developer.wordpress.org/reference/functions/query_posts/

Nora McDougall-Collins Nora McDougall-Collins
5 mag 2022 18:58:07