Ankerlink an den Anfang der Seite
hiker 918473 1920
Generic filters
Filter by Kategorien

Der Beitrag, geschriebem am 14. August 2017, ist schon etwas älter und könnte womöglich nicht mehr aktuell sein

Mit WordPress 4.1 kamen die Funktionen get_the_posts_pagination() und the_posts_pagination(). Validiert man eine Seite die ein Theme mit dieser Funktion verwendet, wird Warning: The navigation role is unnecessary for element nav angezeigt.

validator warning

Wem das nicht gefällt, hier kommt die Lösung.

get_the_posts_pagination() verwendet paginate_links() und die von außen nicht zugängliche Funktion _navigation_markup für das Template.

Die Funktion ist in wp-includes/link-template.php

function _navigation_markup( $links, $class = 'posts-navigation', $screen_reader_text = '' ) {
    if ( empty( $screen_reader_text ) ) {
        $screen_reader_text = __( 'Posts navigation' );
    }
 
    $template = '
    <nav class="navigation %1$s" role="navigation">
        <h2 class="screen-reader-text">%2$s</h2>
        <div class="nav-links">%3$s</div>
    </nav>';
 
    /**
     * Filters the navigation markup template.
     *
     * Note: The filtered template HTML must contain specifiers for the navigation
     * class (%1$s), the screen-reader-text value (%2$s), and placement of the
     * navigation links (%3$s):
     *
     *     <nav class="navigation %1$s" role="navigation">
     *         <h2 class="screen-reader-text">%2$s</h2>
     *         <div class="nav-links">%3$s</div>
     *     </nav>
     *
     * @since 4.4.0
     *
     * @param string $template The default template.
     * @param string $class    The class passed by the calling function.
     * @return string Navigation template.
     */
    $template = apply_filters( 'navigation_markup_template', $template, $class );
 
    return sprintf( $template, sanitize_html_class( $class ), esc_html( $screen_reader_text ), $links );
}

Das Template ist jedoch über einen Filter modifizierbar:

 $template = apply_filters( 'navigation_markup_template', $template, $class );

.

Das role-Attribut aus dem Template entfernen

function flxo_validate_pagination( $template ) {
    return str_replace( 'role="navigation"', '', $template );
}
add_filter( 'navigation_markup_template', 'flxo_validate_pagination' );

Der Filter wirkt auch auf die Paginierung von Kommentaren, da sie dasselbe Template verwendet.

validator clean

Bitte das Kommentarfeld nicht für Supportanfragen nutzen; hier kann kein Support angeboten werden. Die Angabe von Name oder E-Mail-Adresse ist optional, ein Spitzname wäre trotzdem nett.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Name und E-Mail-Adresse (beides optional, da alle Kommentare moderiert werden) werden dauerhaft gespeichert. Über dieses Formular kann jeder Zeit die Löschung persönlicher Daten oder Kommentare angefordert werden; die Anfrage wird nicht veröffentlicht und nach der Bearbeitung gelöscht. IP-Adressen, die mit Kommentaren gespeichert werden, werden nach zwei Monaten automatisch gelöscht.

Ihre Nachricht wird möglicherweise zur Spam-Prüfung an OpenAI (USA) weitergeleitet. Weitere Informationen finden Sie in unserer Datenschutzerklärung.