previous_post_link() e next_post_link() con un custom post type?

13 dic 2012, 22:47:01
Visualizzazioni: 20K
Voti: 7

Mi trovo in single-work.php per un custom post type chiamato work, all'interno del loop.

Sto cercando di creare due link per il post precedente e successivo.

Utilizzando questo codice:

<?php previous_post_link(); ?>

e

<?php next_post_link(); ?>

Ma non viene visualizzato nulla. Mi sfugge qualcosa?

Ecco il mio codice, molto semplice:

<?php get_header(); ?>
<div class="full" >

<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>

    <?php next_post_link('%link', 'Post successivo »'); ?>
<?php next_post_link('%link', 'Post successivo »'); ?>

<?php endwhile; // fine del loop. ?>

</div><!--/full-->  
<?php get_footer(); ?>
0
Tutte le risposte alla domanda 3
1

Quello che vedo nel tuo codice è che i link per il post successivo e precedente appaiono all'interno del ciclo while, mentre non dovrebbero essere dentro il loop e dovrebbero apparire così:

<?php get_header(); ?>
<div class="full" >
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<?php endwhile; // fine del loop. ?>
<?php next_post_link('%link', 'Post successivo »'); ?>
<?php previous_post_link('%link', '« Post precedente'); ?>
</div><!--/full-->  
<?php get_footer(); ?>

Oppure, puoi trovare i dettagli qui.

Nel post sopra ho trovato la paginazione numerica ma spiega comunque in modo molto dettagliato come funziona esattamente la paginazione.

6 ott 2013 15:34:26
Commenti

Utente 39075, per favore non annullare le correzioni grammaticali effettuate dai tuoi colleghi utenti. Qui apprezziamo contenuti di qualità e cura editoriale. Grazie. Consulta la [guida] per maggiori dettagli.

brasofilo brasofilo
6 ott 2013 16:18:16
0

Leggi la documentazione.

Questa funzione non funzionerà (fallirà silenziosamente) se mysql.trace_mode è abilitato nel tuo php.ini. Se non puoi modificare quel file, prova ad aggiungere

ini_set( 'mysql.trace_mode', 0 );

nel file functions.php del tuo tema.

Potrebbe risolvere il tuo problema, ha funzionato per me.

7 mar 2018 21:13:51
5

Le funzioni sono corrette; imposta i parametri

<?php next_post_link('%link', 'Post successivo »'); ?>

<?php next_post_link('%link', 'Post successivo »'); ?>

Beh, senza vedere il tuo codice, è difficile dire perché. Ci sono errori o avvisi PHP?

Aggiornamento

Un piccolo esempio

<?php query_posts( array( 'post_type' => 'page', 'post_status' => 'publish' ) ) ?>
<?php if ( have_posts() ) : ?>

    <?php while ( have_posts() ) : the_post() ?>
        <!-- fai qualcosa -->

    <div id="nav-single">
        <div class="left"><?php previous_post_link(); ?></div>
        <div class="right"><?php next_post_link(); ?></div>
    </div>

    <?php endwhile; // fine del loop. ?>
    <?php wp_reset_query(); ?>

<?php else : ?>

    <!-- fai altre cose qui -->

<?php endif ?>
13 dic 2012 22:50:54
Commenti

Quei parametri sono opzionali, inserirli non aiuta in alcun modo. Nessun errore PHP o altro, ecco perché ho difficoltà a capirlo, è semplicemente silenzioso..

wesbos wesbos
13 dic 2012 22:52:42

Sì, ma funziona su molti template singoli in molti temi. È difficile senza vedere il codice sorgente del template, dove sta il problema. È anche possibile che un plugin o delle funzioni si aggancino all'interno del loop e interrompano i tag del template.

bueltge bueltge
13 dic 2012 22:55:52

Aggiornerò con il mio codice...

wesbos wesbos
13 dic 2012 22:57:23

E il CPT è all'interno del loop predefinito? Nel tuo codice c'è un loop predefinito, non diversi per CPT. Ma sì, è possibile agganciare un CPT all'interno del loop e aggiungere il CPT.

bueltge bueltge
13 dic 2012 23:08:15

Cosa succede se voglio il post precedente/successivo dalla stessa categoria? Cosa devo fare con il codice sopra?

Jornes Jornes
1 ott 2022 07:34:05