Übersetzung von Taxonomie-Slugs
In diesem kurzen Tutorial zeigen wir, wie man Taxonomie-Slugs übersetzt, indem man den Filter-Hook multilingualpress.filter_term_public_url verwendet, der in MultilingualPress enthalten ist.
Inhaltsverzeichnis
Einstellung der Umgebung für unser Beispiel Snippet
Im Folgenden zeigen wir ein Beispiel-Sippet mit zwei Unterseiten, die jeweils eine ID mit dem Wert 1 und eine zweite mit dem Wert 2 haben. In diesem Beispiel sind es zwar zwei Seiten, aber das kann erweitert werden: Es kann noch mehr ID-Werte geben. Diese müssen in jedem Fall abhängig von den in der Umgebung konfigurierten Seiten richtig eingestellt sein.
Außerdem gehen wir in diesem Beispiel davon aus, dass du zuvor die Taxonomie My Taxonomy mit dem Slug my-taxonomy-slug im Netzwerk registriert hast.
Code-Snippet für die Übersetzung des Taxonomie-Slugs
Wir können die Übersetzung der Taxonomie-Slugs wie im Filter unten dargestellt implementieren.
add_filter( 'multilingualpress.filter_term_public_url', function ($url, $sourceSiteId, $remoteSiteId) { $fragments = [ 1 => 'my-taxonomy-slug', 2 => 'de-my-taxonomy-slug', ]; if (empty($fragments[$sourceSiteId]) || empty($fragments[$remoteSiteId])) { return $url; } return str_replace( $fragments[$sourceSiteId], $fragments[$remoteSiteId], $url ); }, 10, 3 );
Wie du im fragments-Array sehen kannst, werden die richtigen Slug-Übersetzungen für jede Seite ausgegeben. Es handelt sich um ein Schlüsselwert-Paar-Array, in dem die Schlüssel Seiten-IDs sind und die Werte die übersetzten Taxonomie-Slugs. Die Array-Elemente kannst du abhängig von der Anzahl an Seiten in deinem Multisite-Netzwerk erweitern.
Aktiviere nun in den MultilingualPress-Einstellungen unter dem Übersetzbare Taxonomies-Tab My Taxonomy.
Erstelle im Anschluss auf der Seite mit der ID 1 einen neuen My Taxonomy-Term als My Term. Verbinde ihn mit der Seite mit der ID 2. Das erstellte Snippet wird die Übersetzung der Slugs korrekt vornehmen, wenn zwischen zwei Seiten hin- und hergeschalten wird.