it-swarm.com.de

next_post_link () funktioniert nicht für einen einzelnen benutzerdefinierten Beitragstyp

Ich kann das nicht für mein ganzes Leben zum Laufen bringen - dies ist der Code in meiner single-osu_work.php Datei, der für diesen Beitragstyp verwendet wird, aber ich kann die Links zum nächsten und vorherigen Beitrag nicht abrufen zu erscheinen - können Sie ein Problem sehen? Ich habe versucht, die Paginierungslinks innerhalb der Schleife zu platzieren, aber immer noch nichts.

Vielen Dank,

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">Date: <?php the_date('Y'); ?></footer>
    </article>
    <?php endwhile;
else : ?>
    <article id="nada">
        <h2 id="mainheading">Nothing found</h2>
        <p>Apologies, but you've come across a page that can't be found.</p>
        <p>Please use the search function or continue browsing.</p>
        <?php echo get_search_form(); ?>
    </article>  
<?php endif; ?>

    <div class="next-posts"><?php next_post_link('%link', 'Newer entry &gt;', true) ?></div>
    <div class="prev-posts"><?php previous_post_link('%link', '&lt; Older entry', true) ?></div>
    <div class="clear">&nbsp;</div>
6
Osu

Ok, ich habe die Lösung gefunden, um die Links erscheinen zu lassen. Ich musste jedoch das "wahre" Argument entfernen, um nur zwischen Beiträgen in derselben Kategorie/Taxonomie zu wechseln.

Ist es richtig, dass Sie die verknüpften Posts nicht so einschränken können, dass sie nur zu derselben Taxonomie gehören? Hier ist der richtige Code und wie Vancoder sagt, muss er in der Schleife erscheinen (ich habe diesen direkt vor endwhile; gesetzt):

<div class="next-posts"><?php next_post_link('%link', 'Newer entry &gt;') ?></div>
<div class="prev-posts"><?php previous_post_link('%link', '&lt; Older entry') ?></div>

Da dies ein benutzerdefinierter Beitragstyp mit einer benutzerdefinierten Taxonomie ist, gehe ich davon aus, dass die Paginierung unterbrochen ist, weil Wordpress nach einer Kategorie sucht, als ob dies normale Beiträge wären. Gibt es eine Möglichkeit, diese Funktion so zu konfigurieren, dass nur Arbeitsposten innerhalb meiner benutzerdefinierten Taxonomie zurückgegeben werden?

9
Osu

Ab WordPress 3.8 können Sie als fünften Parameter eine Taxonomie angeben. In Ihrem Fall wäre es so etwas wie:

<?php previous_post_link( '%link', __( 'Older Entry &gt;', 'sometextdomain' ), true, '', 'somecustomtaxonomy' ); ?>
<?php next_post_link( '%link', __( 'Newer Entry &gt;', 'sometextdomain' ), true, '', 'somecustomtaxonomy' ); ?>

Weitere Informationen finden Sie im Codex http://codex.wordpress.org/Function_Reference/previous_post_link

2
Elliot

Stellen Sie sicher, dass Sie vor dem Aufruf von next_post_link()/previous_post_link() einen custom wp_query-Aufruf getätigt haben und die Abfrage nicht auf den Standardwert zurückgesetzt haben.

In diesem Fall verwenden Sie bitte wp_reset_query nach der Verwendung von custom wp_query.

0