Welche URL-Strukturen sind mit MultilingualPress möglich?
Du befindest dich in der Dokumentation für MultilingualPress 2. Falls du die neuere Version 3 benutzt, wechsle bitte zu MultilingualPress 3.
Wenn du eine mehrsprachige Webseite einrichtest, solltest du dir von Anfang an Gedanken über URL Strukturen machen, da dies ein wichtiger Faktor für den Erfolg deiner mehrsprachigen Internetpräsenz ist.
Inhaltsverzeichnis
Beispiele für URL Strukturen
Theoretisch sind alle URL Strukturen, die mit WordPress Multisite realisiert werden können, auch mit MultilingualPress umsetzbar. Wir unterscheiden zwischen Umsetzung über ccTLDs, Unterverzeichnisse und Subdomains.
- ccTLDs – hierbei handelt es sich um länderspezifische Top Level Domains. In diesem Fall würden wir die deutsche Webseite für MultilingualPress auf multilingualpress.de und die französische auf multilingualpress.fr einrichten.
- Unterverzeichnisse – meist zusammen mit generischen TLDs (.com, .org, .edu etc.). Die URL Struktur für die mehrsprachige MultilingualPress Webseite wäre beispielsweise multilingualpress.org/de für die deutsche Version und multilingualpress.org/fr für die französische.
- Subdomains – nicht ganz so günstig aus SEO Sicht wie die anderen beiden Varianten. Hier hätten wir beispielsweise de.multiligualpress.org und fr.multilingualpress.org.
Unterverzeichnisse je Sprache richtig übersetzen
Bei der Verwendung von Unterverzeichnissen ist darauf zu achten, dass die URLs für die einzelnen Sprachen übersetzt werden müssen – besser für die Lesbarkeit und auch für SEO.
Beim Ändern der Sprache eines Custom Post Types im Frontend, kann es sein, dass die URL nicht richtig umgesetzt wird. In diesem Fall nutze den Filter mlp_linked_element_link. Hier ein Beispiel, welches wir auf multilingualpress.de und multilingualpress.org implementiert haben, und zwar für die Übersetzung des Dokumentations-Slugs. Ähnlich funktioniert dies auch für WooCommerce Produkte.
Unsere deutschen Dokumentationen für MultilingualPress liegen unter multilingualpress.de/doku/…. Die englischen unter multilingualpress.org/docs/…. Die Doku-Kategorien liegen unter multilingualpress.de/doku-kategorie/…. bzw. multilingualpress.org/docs-category/…. Ohne den Fix über den Filter mlp_linked_element_link,
verwendet Multilingualpress beim Wechseln auf die deutsche Doku den englischen Doku-Slug, also beispielsweise multilingualpress.de/docs/.
Was wir genau gemacht haben:
- untenstehende Funktion
filter_mlp_linked_cpt_archive_link
implementiert - den Filter
mlp_linked_element_link
verwendet, um beim Wechseln der Sprache unsere Funktion aufzurufen - alles zur
functions.php
des Themes hinzugefügt
Das Array $fragments
musst du entsprechend anpassen. In dem Array stehen die Slugs für die jeweilige Sprache, die Zahl ist dabei die ID deiner Seite in der Multisite. Ebenso musst du den Post Type 'faq'
und 'faq-category'
mit deinem eigenen ersetzen.
function filter_mlp_linked_cpt_archive_link( $url, $target_site_id, $target_content_id, Mlp_Translation_Interface $translation ) { if ( ! is_post_type_archive() && ! is_archive() && ! is_singular( 'faq' ) ) { return $url; } if ( ! is_a( $translation, 'Mlp_Translation_Interface' ) ) { return $url; } $source_site_id = $translation->get_source_site_id(); if ( ! $source_site_id ) { return $url; } if( is_post_type_archive() || is_singular( 'faq' ) ) { $fragments = array( // MultilingualPress EN 12 => array( '/docs/', ), // MultilingualPress DE 16 => array( '/doku/', ), ); } elseif ( is_tax( 'faq-category' ) ) { $fragments = array( // MultilingualPress EN 12 => array( '/docs-category/', ), // MultilingualPress DE 16 => array( '/doku-kategorie/', ), ); } if ( empty( $fragments[ $source_site_id ] ) ) { return $url; } if ( empty( $fragments[ $target_site_id ] ) ) { return $url; } return str_replace( $fragments[ $source_site_id ], $fragments[ $target_site_id ], $url ); } add_filter( 'mlp_linked_element_link', 'filter_mlp_linked_cpt_archive_link', 10, 4 );
Weitere Informationen zu URL Strukturen mit MultilingualPress und ein Beispiel für WooCommerce findest du auch unter:
- https://wordpress.org/support/topic/problems-with-shop-permalinks/#post-9714350
- https://wordpress.org/support/topic/is-it-possible-to-have-all-network-sites-inside-a-language-subdirectory
- https://wordpress.org/support/topic/homepage-url-without-prefix
Mehr zu URL Strukturen und wann du dich für welche entscheiden solltest, erfährst du bei Yoast im Multilingual SEO Kurs.