previous_post_link() și next_post_link() cu un tip de postare personalizat?
Mă aflu în single-work.php
pentru un tip de postare personalizat numit work
, în interiorul buclei.
Încerc să creez două link-uri către postarea anterioară și următoare.
Folosind acest cod:
<?php previous_post_link(); ?>
și
<?php next_post_link(); ?>
Dar nu apare nimic. Am omis ceva?
Iată codul meu, foarte simplu:
<?php get_header(); ?>
<div class="full" >
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<?php next_post_link('%link', 'Postarea următoare »'); ?>
<?php next_post_link('%link', 'Postarea următoare »'); ?>
<?php endwhile; // sfârșitul buclei. ?>
</div><!--/full-->
<?php get_footer(); ?>

Ceea ce observ în codul tău este că codurile pentru postul următor și postul anterior apar în interiorul buclei while, ceea ce nu ar trebui să fie în interiorul buclei și ar trebui să apară astfel:
<?php get_header(); ?>
<div class="full" >
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<?php endwhile; // end of the loop. ?>
<?php next_post_link('%link', 'Postul următor »'); ?>
<?php next_post_link('%link', 'Postul următor »'); ?>
</div><!--/full-->
<?php get_footer(); ?>
Sau, poți găsi detalii aici.
În postul de mai sus am găsit paginarea numerică, dar totuși este explicat în detaliu cum funcționează exact paginarea.

Citește documentația.
Această funcție nu va funcționa (va eșua în tăcere) dacă mysql.trace_mode este activat în php.ini. Dacă nu poți edita acel fișier, încearcă să adaugi
ini_set( 'mysql.trace_mode', 0 );
în fișierul functions.php al temei tale.
Asta ar putea rezolva problema ta, așa cum a rezolvat-o și pentru mine.

Funcțiile sunt corecte; setează parametrii
<?php next_post_link('%link', 'Postarea următoare »'); ?>
<?php next_post_link('%link', 'Postarea următoare »'); ?>
Fără să văd codul tău, este greu de spus de ce. Există erori sau avertismente PHP?
Actualizare
Un mic exemplu
<?php query_posts( array( 'post_type' => 'page', 'post_status' => 'publish' ) ) ?>
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
<!-- faci ceva aici -->
<div id="nav-single">
<div class="left"><?php previous_post_link(); ?></div>
<div class="right"><?php next_post_link(); ?></div>
</div>
<?php endwhile; // sfârșitul buclei. ?>
<?php wp_reset_query(); ?>
<?php else : ?>
<!-- faci altceva aici -->
<?php endif ?>

Acești parametri sunt opționali, includerea lor nu ajută la nimic. Nu există erori PHP sau altceva, motiv pentru care îmi este greu să identific problema, pur și simplu nu afișează nimic...

Da, dar funcționează pe multe șabloane single în multe teme. Este greu fără să vedem sursa șablonului, unde este problema. Este posibil și ca un plugin sau funcții să se conecteze în interiorul loop-ului și să întrerupă tag-urile șablonului.

Și CPT-ul este în interiorul buclei implicite? În codul tău este o buclă implicită, nu mai multe pentru CPT. Dar, da, este posibil să conectezi un CPT în interiorul buclei și să adaugi CPT-ul.
