next_post_link() non funziona per un singolo post di tipo custom post type

16 ago 2013, 18:39:40
Visualizzazioni: 18.8K
Voti: 7

Non riesco assolutamente a farlo funzionare - questo è il codice nel mio file single-osu_work.php che viene utilizzato per questo tipo di post, ma non riesco a far apparire i link al post successivo e precedente - vedi qualche problema? Ho provato a mettere i link di paginazione dentro il loop ma ancora nulla.

Grazie,

Osu

if (have_posts()) : while (have_posts()) : the_post(); ?>
    <article <?php post_class(); ?> id="post-<?php the_ID(); ?>">
        <h1 id="mainheading"><?php the_title(); ?></h1>
        <?php the_content(); ?>
        <footer class="postmetadata">Data: <?php the_date('Y'); ?></footer>
    </article>
    <?php endwhile;
else : ?>
    <article id="nada">
        <h2 id="mainheading">Nessun risultato</h2>
        <p>Spiacenti, ma hai raggiunto una pagina che non può essere trovata.</p>
        <p>Per favore usa la funzione di ricerca o continua la navigazione.</p>
        <?php echo get_search_form(); ?>
    </article>  
<?php endif; ?>

    <div class="next-posts"><?php next_post_link('%link', 'Entry più recente &gt;', true) ?></div>
    <div class="prev-posts"><?php previous_post_link('%link', '&lt; Entry meno recente', true) ?></div>
    <div class="clear">&nbsp;</div>
4
Commenti

Dovrebbero essere all'interno del loop - potresti voler aggiornare il tuo codice.

vancoder vancoder
16 ago 2013 19:40:42

Sfortunatamente, ho già provato e non funziona, i link di navigazione non compaiono, solo il markup div intorno a loro...

Osu Osu
18 ago 2013 12:29:35

Aggiornamento: riesco a farlo funzionare se lo sposto nel loop ma usando solo next_post_link() e non next_post_link('%link', 'Newer entry >', true) - hai idea del perché? È perché è un custom post type e non puoi rinominare i link di impaginazione dei post? Vorrei poter rinominare il link se possibile. Grazie

Osu Osu
18 ago 2013 12:33:12

Basta rimuovere la parte "true". Questo ha funzionato per me.

Pete Pete
1 gen 2017 06:23:46
Tutte le risposte alla domanda 3
1

Ok, ho trovato la soluzione per far apparire i link, però ho dovuto rimuovere l'argomento 'true' per limitare la navigazione solo tra post della stessa categoria/tassonomia.

È corretto che non si possa restringere i post collegati solo a quelli all'interno della stessa tassonomia? Ecco il codice corretto e, come dice vancoder, deve apparire all'interno del loop (ho inserito questo codice appena prima di endwhile;):

<div class="next-posts"><?php next_post_link('%link', 'Nuovo articolo &gt;') ?></div>
<div class="prev-posts"><?php previous_post_link('%link', '&lt; Articolo precedente') ?></div>

Siccome questo è un custom post type con una tassonomia personalizzata, presumo che l'impaginazione si rompa perché Wordpress cerca una 'category' come se fossero post normali? C'è un modo per far funzionare questo sistema in modo che vengano restituiti solo i post Work all'interno della mia tassonomia personalizzata?

18 ago 2013 15:17:29
Commenti

Sì, le funzioni funzionano solo con la tassonomia 'category'. Non sono a conoscenza di un metodo per sovrascriverlo.

vancoder vancoder
19 ago 2013 09:22:43
0

A partire da WordPress 3.8 puoi specificare una tassonomia come quinto parametro. Nel tuo caso sarebbe qualcosa del tipo:

<?php previous_post_link( '%link', __( 'Articolo precedente &gt;', 'sometextdomain' ), true, '', 'somecustomtaxonomy' ); ?>
<?php next_post_link( '%link', __( 'Articolo successivo &gt;', 'sometextdomain' ), true, '', 'somecustomtaxonomy' ); ?>

Consulta il Codex per maggiori informazioni http://codex.wordpress.org/Function_Reference/previous_post_link

6 ott 2014 15:48:30
0

Assicurati di aver effettuato una chiamata custom wp_query prima di chiamare next_post_link() / previous_post_link() e di non aver ripristinato la query predefinita.

In tal caso, utilizza wp_reset_query dopo l'uso della wp_query personalizzata.

2 set 2016 13:05:10