$converted_url = apply_filters( 'wpml_permalink', string $permalink, string $language_code = null, bool $full_resolution = false );
- Typ
- filter
- Kategorie
- Abrufen lokalisierter Inhalte
- WPML-Version
- 3.2.2
Beschreibung
Filtert einen WordPress-Permalink und wandelt ihn basierend auf dem in den WPML-Spracheinstellungen festgelegten Sprach-URL-Format in einen sprachspezifischen Permalink um.
Das bedeutet, dass der Permalink in der Form http://domain.com/de zurückgegeben wird, wenn das „Sprach-URL-Format“ auf „Verschiedene Sprachen in Verzeichnissen“ eingestellt ist. Wenn „Eine andere Domain pro Sprache“ ausgewählt ist, wird der Permalink so umgewandelt, dass er die korrekte Domain enthält, die der angeforderten Sprache zugewiesen ist.
Argumente
- $permalink
- (string) (Erforderlich) Die von WordPress generierte URL, die gefiltert werden soll.
- $language_code
- (string) (Optional) Die Sprache, in die die URL konvertiert werden soll. Es wird ein 2-stelliger Code akzeptiert. Wenn auf
nullgesetzt, wird für die Stammseite auf die Standardsprache zurückgegriffen, in allen anderen Fällen auf die aktuelle Sprache. Der Standardwert istnull - $full_resolution
- (boolean) (Optional) Aktiviert die vollständige Konvertierung von fest codierten URLs.
Anwendungsbeispiel
Beispiel 1
Wenn wir zum Beispiel „Verschiedene Sprachen in Verzeichnissen“ ausgewählt haben, können wir den folgenden Code verwenden:
// will return http://domain.com/de/contact $wpml_permalink = apply_filters( 'wpml_permalink', 'http://domain.com/contact', 'de' );
Beispiel 2
Wir haben eine Seite http://example.org/hello/ und ihre Übersetzung http://example.org/fr/bonjour/. Nehmen wir an, wir rufen den Filter auf, während wir die Startseite http://example.org anzeigen.
// displays http://example.org/fr/hello/ (wrong) echo apply_filters( 'wpml_permalink', 'http://example.org/hello/', 'fr' ); // displays http://example.org/fr/bonjour/ (correct) echo apply_filters( 'wpml_permalink', 'http://example.org/hello/', 'fr', true );
Wichtige Hinweise zum zweiten Beispiel:
- Die vollständige Auflösung ist ein ressourcenintensiver Prozess, daher muss WPML die aufgelösten URLs in der Datenbank persistieren. Der erste Aufruf von wpml_permalink dürfte die Datenbankabfragen und die Ladezeit deutlich erhöhen. Nachfolgende Aufrufe sollten den Prozess jedoch nicht überlasten.
- Die Datenbankpersistenz wird teilweise geleert, wenn Beiträge oder Begriffe aktualisiert oder gelöscht werden. Und sie wird vollständig geleert, wenn Sie Einstellungen -> Permalinks aufrufen (dies ist eine gute Option zur Fehlerbehebung, falls Probleme auftreten).
- Falls die URL nicht aufgelöst werden konnte, gibt der Filter wpml_permalink die ursprüngliche URL zurück.
Verwandte Hooks
wpml_media_url, wpml_media_id, force_suppress_filters, wpml_get_translated_slug, wpml_home_url, wpml_translate_single_string, wpml_translate_string, wpml_elements_without_translations, wpml_unfiltered_admin_string, wpml_element_link