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.
Schreibe einen Kommentar