$converted_url = apply_filters( 'wpml_permalink', string $permalink, string $language_code = null, bool $full_resolution = false );
- Type
- filter
- Catégorie
- Récupération du contenu localisé
- Version de WPML
- 3.2.2
Description
Filtre un permalien WordPress et le convertit en un permalien spécifique à la langue en fonction du format d’URL de langue défini dans les paramètres de langue de WPML.
Cela signifie que lorsque « Format d’URL de langue » est défini sur « Langues différentes dans les répertoires », le permalien sera renvoyé sous la forme http://domain.com/de. Lorsque « Un domaine différent par langue » est sélectionné, le permalien sera converti pour inclure le domaine correct attribué à la langue demandée.
Arguments
- $permalink
- (string) (Requis) L’URL générée par WordPress à filtrer.
- $language_code
- (string) (Facultatif) La langue dans laquelle convertir l’URL. Ce paramètre accepte un code à 2 lettres. Lorsqu’il est défini sur
null, il se rabat sur la langue par défaut pour la page racine, ou sur la langue actuelle dans tous les autres cas. La valeur par défaut estnull - $full_resolution
- (booléen) (Facultatif) Activer la conversion complète des URL codées en dur.
Exemple d’utilisation
Exemple 1
Par exemple, si nous avons sélectionné « Langues différentes dans les répertoires », nous pouvons utiliser le code suivant :
// will return http://domain.com/de/contact $wpml_permalink = apply_filters( 'wpml_permalink', 'http://domain.com/contact', 'de' );
Exemple 2
Nous avons une page http://example.org/hello/ et sa traduction http://example.org/fr/bonjour/. Supposons que nous appelions le filtre pendant que nous affichons la page d’accueil http://example.org.
// 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 );
Remarques importantes concernant le deuxième exemple :
- La résolution complète est un processus lourd, WPML doit donc conserver les URL résolues dans la base de données. Le premier appel à wpml_permalink devrait augmenter considérablement les requêtes vers la base de données et le temps de chargement. Cependant, les appels ultérieurs ne devraient pas surcharger le processus.
- La persistance dans la base de données est partiellement effacée lorsque des articles ou des termes sont mis à jour ou supprimés. Et elle est entièrement effacée lors de la visite dans Paramètres -> Permaliens (c’est une bonne option de dépannage au cas où vous rencontreriez des problèmes).
- Dans le cas où l’URL n’a pas pu être résolue, le filtre wpml_permalink renverra l’URL d’origine.
Hooks associés
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
Les 12 hooks de la catégorie Récupération du contenu localisé →