WPML
apply_filters( 'wpml_language_codes_map', array $map )
Typ
filter
WPML-Version
5.0.0

Beschreibung

Filtert die Zuordnung von Sprachcodes zu den Codes, die WPML in URLs verwendet.

Eine Sprache hat in WPML 5.0 zwei Codes. language_code ist der gespeicherte Code und ändert sich nie. Der URL-Code ist das Segment, das ein Besucher sieht, zum Beispiel /de-de/. Die beiden unterscheiden sich, wenn WPML den URL-Code qualifiziert, was geschieht, wenn Sie im selben Schritt zwei Länder einer Sprache hinzufügen und wenn der Website-Betreiber den URL-Code bearbeitet.

Dieser Filter ist die Zuordnung, die der URL-Konverter selbst liest, sodass er niemals im Widerspruch zu den Links stehen kann, die WPML erstellt. Verwenden Sie ihn, um die Adresse einer Sprache zu ermitteln. Um alle Daten der aktiven Sprachen zu lesen, einschließlich der Flagge und der vollständigen URL, verwenden Sie wpml_active_languages.

Sie erstellen die Zuordnung und WPML schreibt sie um. WPML ersetzt den Wert jedes Schlüssels, den es kennt, durch den URL-Code dieser Sprache und belässt jeden anderen Schlüssel so, wie Sie ihn übergeben haben. WPML fügt niemals eine Sprache hinzu, sodass ein leeres Array auch leer zurückkommt. Erstellen Sie zuerst die Zuordnung als WPML code => WPML code und wenden Sie dann den Filter an. WPML macht in seinem eigenen Code dasselbe.

Argumente

Parameter
  • $map(array) Eine Map von WPML code => code, die Sie selbst erstellen. WPML ersetzt den Wert jedes Schlüssels, den es kennt, durch den URL-Code dieser Sprache. Ein Schlüssel, den WPML nicht kennt, behält den von Ihnen übergebenen Wert.
Rückgabe
(array) Dieselbe Map mit dem URL-Code jeder Sprache, die WPML kennt. WPML fügt keine Schlüssel hinzu, übergeben Sie also jede Sprache, die Sie lesen möchten.

Beispielhafte Verwendung

Lesen Sie die Map, um zu erfahren, welches URL-Segment eine Sprache verwendet. Das Beispiel schreibt eine Zeile pro Sprache. Es liest die Sprachenliste mit wpml_active_languages, daher wird es nach der Aktion wp ausgeführt, genau wie dieser Filter.

Beispiel
function my_language_url_codes() {
    $codes = apply_filters( 'wpml_active_languages', null );
    if ( empty( $codes ) ) {
        return;
    }

    $identity = array_combine( array_keys( $codes ), array_keys( $codes ) );
    $map      = apply_filters( 'wpml_language_codes_map', $identity );

    foreach ( $map as $language_code => $url_code ) {
        echo esc_html( $language_code . ' is served at /' . $url_code . '/' ) . '<br />';
    }
}

Um den URL-Code einer Sprache zu ändern, bearbeiten Sie ihn unter WPML » Einstellungen » Sprachen. Verwenden Sie diesen Filter nicht, um eine Sprache an eine andere Adresse zu verschieben: WPML liest die Map, wenn es eine eingehende URL parst und wenn es einen Link erstellt. Ein Wert, der zu keiner Sprache gehört, erzeugt also Adressen, die WPML nicht auflösen kann.

wpml_decode_custom_field, wpml_footer_language_selector, wpml_add_language_form_field, wpml_ls_exclude_in_menu, wpml_is_rtl, wpml_alternate_hreflang, wpml_head_langs, wpml_must_translate_canonical_url, wpml_browser_redirect_language_params, wpml_active_languages

Alle 30 Websiteübergreifende Sprachinformationen-Hooks