Coding | PHP | WordPress

WordPress-Beitragsnavigation nur innerhalb desselben Postformats zulassen

window 941625 1920
next_post_link( '%link', 'Next post in taxonomy', true, ' ', 'post_format' );
previous_post_link( '%link', 'Previous post in taxonomy', true, ' ', 'post_format' );

true bedeutet, dass der jeweilige Link zu einem (dem chronologisch vorherigen oder nächsten) Beitrag führt der (mindestens) eine gemeinsame Kategorie / einen gemeinsamen Term mit dem aktuellen Beitrag hat. Standard ist, dass es sich um eine Kategorie der Taxonomy Category handelt. Der nächste Parameter ist für Term- (Kategorien-) IDs vorgesehen, die von der Berücksichtigung ausgeschlossen werden sollen und darf nicht ausgelassen werden (ggf. leer lassen), wenn man die Taxonomy innerhalb der geblättert wird, selbst bestimmen will (andernfalls ist es Category). Der letzte Parameter schließlich ist die Taxonomy, deren Terms (Kategorien) berücksichtigt werden. Bei Beitragsformaten ist es die Taxonomy post_format.

Nachtrag (12.02.2016)

Seit WordPress 4.1 werden die Aufrufe (je nach Theme) in der Funktion get_the_post_navigation (the_post_navigation gibt sie aus) zusammengefasst (was nicht heißt, dass man sie nicht auch weiterhin einzeln verwenden kann). In TwentySixteen sieht es in der single.php zum Beispiel so aus:

                 the_post_navigation( array(
                    'next_text' => '<span class="meta-nav" aria-hidden="true">' . __( 'Next', 'twentysixteen' ) . '</span> ' .
                        '<span class="screen-reader-text">' . __( 'Next post:', 'twentysixteen' ) . '</span> ' .
                        '<span class="post-title">%title</span>',
                    'prev_text' => '<span class="meta-nav" aria-hidden="true">' . __( 'Previous', 'twentysixteen' ) . '</span> ' .
                        '<span class="screen-reader-text">' . __( 'Previous post:', 'twentysixteen' ) . '</span> ' .
                        '<span class="post-title">%title</span>',
                ) );

Mit WordPress 4.4 kamen die Argumente in_same_term, excluded_terms, and taxonomy arguments dazu. Das müsste dann so aussehen:

             the_post_navigation( array(
                'next_text' => '<span class="meta-nav" aria-hidden="true">' . __( 'Next', 'twentyfifteen' ) . '</span> ' .
                    '<span class="screen-reader-text">' . __( 'Next post:', 'twentyfifteen' ) . '</span> ' .
                    '<span class="post-title">%title</span>',
                'prev_text' => '<span class="meta-nav" aria-hidden="true">' . __( 'Previous', 'twentyfifteen' ) . '</span> ' .
                    '<span class="screen-reader-text">' . __( 'Previous post:', 'twentyfifteen' ) . '</span> ' .
                    '<span class="post-title">%title</span>',
                'taxonomy' => 'post_format'
            ) );

Details in der Dokumentation von <a href="https://developer.wordpress.org/reference/functions/get_the_post_navigation/" target="_blank">get_the_post_navigation</a>.

weiter schmökern

4 Comments

  1. Jetzt ist es mir klar.
    In meinem Fall in der single.php den Wert 'in_same_term' => 'true' einfügen.

    Es wird da aber der "post_nav_background" noch nicht mit übernommen.
    Dazu habe in meinem Theme in der" function.php" bei "$next UND previous = get_adjacent_post" jeweils den ersten Wert auf true gesetzt (durch probieren) und jetzt funktioniert es wie gewünscht.

    1. NICHT WordPress Core-Dateien verändern. Beim nächsten Update ist das weg. Im Theme anpassen (wenn es ein eigenes Theme ist, sonst günstigerweise in einem Child-Theme).

Schreibe einen Kommentar

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden.

Deine E-Mail-Adresse wird nicht veröffentlicht.