Pagination Parameter „page“, „comments“, „author“, „search“ übersetzen

close-up photo of opened book

foto von justin dream auf unsplash

In den meisten Blogs, selbst übersetzten Sprachversionen, wird früher oder später augenfällig, dass bei größer werdender Anzahl von Beiträgen die Links der Folgeseiten mit /page/2, /page/3/ etc. enden. Festgelegt wird das unter wp-includes/class-wp-rewrite.ph, und eine Übersetzung ist nicht vorgesehen.

Um die Paging-Slugs zu ändern müssen die entsprechenden rewrite-Keys in der gewünschten Sprache formuliert sein.

function paging_params_rewrite_base() {
    global $wp_rewrite;
    $bases = array(
        'author_base' => 'autor',
        'search_base' => 'suche', 
        'comments_base' => 'kommentare',
        'pagination_base' => 'seite'
    );

    foreach ($bases AS $key => $base) {
        $wp_rewrite->{$key} = remove_accents(mb_strtolower(trim($base)));
    }

    if ( ! get_option('change_rewrite_base_flushed', false) ) {
        flush_rewrite_rules();
        update_option( 'change_rewrite_base_flushed', time());
    }
}
add_action('init', 'paging_params_rewrite_base');

Für mehrsprachige Projekte mit Übersetzungskatalogen (z.B. mit poedit geführt) lassen sich die Pagination-Paremter auch übersetzbar gestalten.

function paging_params_rewrite_base() {
    ...
    $bases = array(
        'author_base' => __('author', 'mytextdomain'),
        'search_base' => __('search', 'mytextdomain'),
        'comments_base' => __('comments', 'mytextdomain'),
        'pagination_base' => __('page', 'mytextdomain')
    );
    ...
}
add_action('init', 'paging_params_rewrite_base');

Die Durchführung von flush_rewrite_rules() funktioniert nur einmal. Ohne flushen der Rewrite-Regeln werden die Folgeseiten zu 404-Fehlern führen. Die Paginierung also nach Umstellung unbedingt testen. Ggf. müssen die Permanlink-Einstellungen geändert, gespeichert, zurückgeändert und noch einmal gespeichert werden.

weitere Beiträge zu:

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden. Die Angabe einer E-Mail-Adresse und eines Namens ist nicht erforderlich. Einen (Spitz)-Namen zu nennen wäre aber doch nett.

Schreibe einen Kommentar

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

Hinweis: Sowohl angegebener Name als auch E-Mail-Adresse (beides ist optional, dafür werden alle Kommentare vor Veröffentlichung geprüft) werden dauerhaft gespeichert. Du kannst jeder Zeit die Löschung Deiner Daten oder / und Kommentare einfordern, direkt über dieses Formular (wird nicht veröffentlicht, und im Anschluss gelöscht), und ich werde das umgehend erledigen. – Mit hinterlassenen Kommentaren hinterlegte IP-Adressen werden nach zwei Monaten automatisch gelöscht

publicly queryable