next_post_link() nu funcționează pentru postările personalizate în WordPress

16 aug. 2013, 18:39:40
Vizualizări: 18.8K
Voturi: 7

Nu reușesc să fac asta să funcționeze - acesta este codul din fișierul meu single-osu_work.php care este folosit pentru acest tip de postare, dar nu reușesc să fac să apară link-urile pentru postarea următoare și anterioară - poți identifica problema? Am încercat să pun link-urile de paginare în interiorul loop-ului, dar tot nu funcționează.

Mulțumesc,

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">Nu s-a găsit nimic</h2>
        <p>Ne cerem scuze, dar ați ajuns la o pagină care nu poate fi găsită.</p>
        <p>Vă rugăm să folosiți funcția de căutare sau să continuați navigarea.</p>
        <?php echo get_search_form(); ?>
    </article>  
<?php endif; ?>

    <div class="next-posts"><?php next_post_link('%link', 'Postare mai nouă &gt;', true) ?></div>
    <div class="prev-posts"><?php previous_post_link('%link', '&lt; Postare mai veche', true) ?></div>
    <div class="clear">&nbsp;</div>
4
Comentarii

Ar trebui să fie în interiorul loop-ului - poate doriți să actualizați codul dumneavoastră.

vancoder vancoder
16 aug. 2013 19:40:42

Din păcate, am încercat deja acest lucru și nu funcționează, link-urile de navigare nu apar, doar markup-ul div în jurul lor...

Osu Osu
18 aug. 2013 12:29:35

Actualizare: Pot face acest lucru să funcționeze dacă îl mut în loop dar folosesc doar next_post_link() nu next_post_link('%link', 'Newer entry >', true) - aveți vreo idee de ce s-ar putea întâmpla asta? Este pentru că este un custom post type și nu poți redenumi link-urile de paginare a postărilor? Aș dori să redenumesc link-ul dacă este posibil. Mulțumesc

Osu Osu
18 aug. 2013 12:33:12

Doar elimină partea cu "true". Asta a funcționat pentru mine.

Pete Pete
1 ian. 2017 06:23:46
Toate răspunsurile la întrebare 3
1

Am găsit soluția pentru afișarea link-urilor, dar a trebuit să elimin argumentul 'true' pentru a permite navigarea doar între postări din aceeași categorie/taxonomie.

Este corect că nu poți restricționa postările legate doar la cele din aceeași taxonomie? Iată codul corect și, după cum menționează vancoder, acesta trebuie să apară în interiorul loop-ului (l-am plasat chiar înainte de endwhile;):

<div class="next-posts"><?php next_post_link('%link', 'Postare mai nouă &gt;') ?></div>
<div class="prev-posts"><?php previous_post_link('%link', '&lt; Postare mai veche') ?></div>

Deoarece acesta este un tip de postare personalizată cu o taxonomie personalizată, presupun că paginarea nu funcționează corect deoarece WordPress caută o 'categorie' ca și cum ar fi postări normale? Există vreo modalitate de a face acest lucru să funcționeze astfel încât să fie returnate doar postările de tip Work din taxonomia mea personalizată?

18 aug. 2013 15:17:29
Comentarii

Da, funcțiile funcționează doar cu taxonomia 'category'. Nu cunosc nicio metodă de a suprascrie acest lucru.

vancoder vancoder
19 aug. 2013 09:22:43
0

Începând cu WordPress 3.8, puteți specifica o taxonomie ca al cincilea parametru. În cazul dvs., ar arăta cam așa:

<?php previous_post_link( '%link', __( 'Intrare mai veche &gt;', 'sometextdomain' ), true, '', 'somecustomtaxonomy' ); ?>
<?php next_post_link( '%link', __( 'Intrare mai nouă &gt;', 'sometextdomain' ), true, '', 'somecustomtaxonomy' ); ?>

Consultați Codex pentru mai multe informații http://codex.wordpress.org/Function_Reference/previous_post_link

6 oct. 2014 15:48:30
0

Asigurați-vă că ați făcut un apel custom wp_query înainte de apelul next_post_link() / previous_post_link() și nu ați resetat interogarea la cea implicită.

În acest caz, vă rugăm să utilizați wp_reset_query după utilizarea wp_query personalizat.

2 sept. 2016 13:05:10