WPML
$converted_url = apply_filters( 'wpml_permalink', string $permalink, string $language_code = null, bool $full_resolution = false );
Tipo
filter
Versione di WPML
3.2.2

Descrizione

Filtra un permalink di WordPress e lo converte in un permalink specifico per la lingua in base al Formato URL della lingua impostato nelle impostazioni della lingua di WPML.

Questo significa che quando il “Formato URL della lingua” è impostato su “Lingue diverse in directory”, il permalink verrà restituito nel formato http://domain.com/de. Quando è selezionato “Un dominio diverso per lingua”, il permalink verrà convertito per includere il dominio corretto assegnato alla lingua richiesta.

Argomenti

$permalink
(string) (Obbligatorio) L’URL generato da WordPress da filtrare.
$language_code
(string) (Opzionale) La lingua in cui convertire l’URL. Accetta un codice a 2 lettere. Se impostato su null, ricorre alla lingua predefinita per la pagina radice, o alla lingua attuale in tutti gli altri casi. Il valore predefinito è null
$full_resolution
(boolean) (Opzionale) Abilita la conversione completa degli URL hardcoded.

Esempio di utilizzo

Esempio 1

Ad esempio, se abbiamo selezionato “Lingue diverse in directory”, possiamo usare il seguente codice:

// will return http://domain.com/de/contact
$wpml_permalink = apply_filters( 'wpml_permalink', 'http://domain.com/contact', 'de' );	

Esempio 2

Abbiamo una pagina http://example.org/hello/ e la sua traduzione http://example.org/fr/bonjour/. Supponiamo di richiamare il filtro mentre stiamo visualizzando la home page 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 ); 

Note importanti sul secondo esempio:

  • La risoluzione completa è un processo pesante, quindi WPML deve salvare gli URL risolti nel database. La prima chiamata a wpml_permalink dovrebbe aumentare in modo significativo le query al database e il tempo di caricamento. Ma le chiamate successive non dovrebbero sovraccaricare il processo.
  • La persistenza nel database viene parzialmente cancellata quando gli articoli o i termini vengono aggiornati o eliminati. E viene completamente cancellata quando si visita Impostazioni -> Permalink (questa è una buona opzione per la risoluzione dei problemi nel caso in cui se ne riscontrino).
  • Nel caso in cui non sia possibile risolvere l’URL, il filtro wpml_permalink restituirà l’URL originale.

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

Tutti i 12 hook della categoria Recupero dei contenuti localizzati →