Integration in Ihre Website

Die Verbindungen stehen, jetzt soll der Sprachumschalter im Frontend erscheinen. Dafür gibt es vier Wege, die alle denselben Code verwenden und sich nur darin unterscheiden, wo Sie ihn einsetzen: Block, Widget, Shortcode und Theme-Funktion.

Wie die Ausgabe aussieht, hängt in allen vier Fällen von den Einstellungen des Plugins und dem CSS Ihres Themes ab. Das Plugin bringt absichtlich fast keine eigenen Stile mit.

Der Block

Im Editor finden Sie den Block Multisite Language Switcher in der Kategorie „Widgets“. Er lässt sich überall einsetzen, wo Blöcke möglich sind: in Beiträgen, auf Seiten und in einem Block-Theme auch im Kopf- und Fußbereich.

Der Block hat keine eigenen Optionen. Er greift auf die Einstellungen des Plugins zurück, was ein bewusster Verzicht ist: Die Ausgabe soll überall auf der Website gleich aussehen.

Ausgabe des Blocks im Frontend, ohne eigene Stile des Themes

Das Widget

Für Themes mit klassischen Widget-Bereichen steht das Widget Multisite Language Switcher bereit. Sie ziehen es in eine Seitenleiste und geben ihm optional einen Titel, das Feld heißt Widget-Titel.

Einstellungen des Widgets in der Widget-Verwaltung

Liegt für die aktuelle Seite keine Übersetzung vor, gibt das Widget stattdessen „Keine Übersetzungen verfügbar“ aus. Darin unterscheidet es sich von Block und

, die in diesem Fall nichts ausgeben. Der Shortcode rendert das Widget und verhält sich deshalb wie dieses.

Ausgabe des Widgets im Frontend, ohne eigene Stile des Themes

Die Shortcodes

Zwei Shortcodes stehen zur Verfügung:

ShortcodeAusgabe
Die Liste der Sprachlinks, wie in den Einstellungen konfiguriert
Dieselbe Ausgabe in der Form des Widgets, für Themes, die das erwarten

Beide funktionieren überall, wo WordPress Shortcodes auswertet, also im Beitragstext, in Textwidgets und, sofern Ihr Theme das unterstützt, in Templates.

Direkt im Theme

Wenn der Umschalter an eine Stelle gehört, die kein Block und kein Widget erreicht, etwa in die header.php eines klassischen Themes, rufen Sie die Funktion des Plugins direkt auf:

<?php if ( function_exists( 'msls_the_switcher' ) ) msls_the_switcher(); ?>

Der function_exists()-Test ist wichtig: Ohne ihn führt ein deaktiviertes Plugin zu einem Fehler auf jeder Seite.

Achtung, die Funktionsnamen haben sich geändert. Bis Version 2.10 hieß diese Funktion the_msls(). Der alte Name funktioniert weiter, erzeugt aber eine Warnung im Log. Wenn Sie älteren Code aus einer früheren Fassung dieser Anleitung übernommen haben, tauschen Sie ihn aus:

AltNeu
the_msls()msls_the_switcher()
get_the_msls()msls_get_switcher()
get_msls_flag_url( $locale )msls_get_flag_url( $locale )
get_msls_blog_description( $locale )msls_get_blog_description( $locale )
get_msls_permalink( $locale )msls_get_permalink( $locale )

Wer den Umschalter selbst zusammenbauen will, kommt mit diesen drei Funktionen weit:

$locale      = get_locale();
$flag_url    = msls_get_flag_url( $locale );
$description = msls_get_blog_description( $locale );
$locale_href = msls_get_permalink( $locale );

Alle Funktionen des Plugins mit ihren Parametern stehen in den API-Funktionen.

Der Hinweis im Beitragstext

Unabhängig von Block, Widget und Shortcode kann das Plugin unter jedem Beitrag einen Satz einblenden, wenn eine Übersetzung vorliegt: „Der Artikel ist auch in Deutsch verfügbar.“ Eingeschaltet wird das über einen Hinweis zu verfügbaren Übersetzungen in den Haupteinstellungen. Die Position steuert die Priorität des Hinweises.

Das ist der einfachste Weg, Besucher auf Übersetzungen aufmerksam zu machen, ohne das Theme anzufassen.

Was das Plugin ohne Ihr Zutun ausgibt

Zwei Dinge passieren automatisch, sobald Verbindungen bestehen:

Im Kopf jeder Seite stehen hreflang-Angaben für die verbundenen Sprachfassungen. Suchmaschinen erkennen daran, dass es sich um Übersetzungen derselben Seite handelt, und liefern Besuchern die passende Fassung aus. Dafür müssen Sie nichts einstellen.

In der Werkzeugleiste im Backend erscheinen die anderen Sprachfassungen des gerade betrachteten Inhalts, was beim Redigieren Wege spart.

Sprachumschalter im Navigationsmenü

Ein Menüpunkt für die Sprachen ist die häufigste Anforderung, die das Plugin selbst nicht abdeckt. Dafür gibt es zwei Add-ons desselben Autors:

  • MslsMenu hängt die Sprachlinks an ein Navigationsmenü an, mit eigener Einstellungsseite
  • MslsSelect gibt die Sprachen als Auswahlliste aus, praktisch bei vielen Sprachen oder wenig Platz

Wer es selbst schreiben möchte, findet ein vollständiges Beispiel für das Menü in den Snippets & Beispielen.

Der Artikel ist auch in English verfügbar.