WPML

WPML Sticky Links impedisce che i link tra le pagine e gli articoli si interrompano, anche se le pagine vengono spostate e rinominate.


WordPress rende fin troppo facile cambiare gli indirizzi delle pagine, causando l’interruzione di tutti i link in entrata (errore 404). Ecco alcune azioni che possono causare un errore 404:
  • Modifica della pagina genitore
  • Modifica dello slug
  • Modifica della struttura dei permalink del sito

WPML impedisce che le modifiche agli URL interrompano i link in entrata. Quando crei un link, WPML lo rende automaticamente sticky. Invece di memorizzare l’URL di quella pagina (al momento in cui è stato creato il link), memorizza il numero della pagina. Questo non può mai cambiare, indipendentemente da ciò che fai.

Quindi, quando la pagina viene visualizzata, WPML inserisce il permalink della pagina a cui ti stai collegando. Ogni volta che l’URL cambia, tutte le pagine che si collegano ad esso si aggiornano immediatamente e punteranno all’indirizzo corretto.

I seguenti screenshot mostrano come appaiono i link interni nel database, una volta abilitati gli Sticky Links.

Link convertiti in Sticky da WPML visualizzati nell’editor a blocchi
Link convertiti in Sticky da WPML visualizzati nell’editor a blocchi
Link convertiti in Sticky da WPML visualizzati nell’editor classico
Link convertiti in Sticky da WPML visualizzati nell’editor classico

I tuoi utenti non vedranno mai questi link “strani”. Invece, WPML li sostituirà con i permalink attuali durante la visualizzazione delle pagine.
Una volta abilitato il modulo Sticky Links, puoi controllare quali stringhe gestisce. Per farlo, vai alla pagina WPMLSticky links.
Sticky Links prima dell’elaborazione
Sticky Links prima dell’elaborazione

Per impostazione predefinita, WPML convertirà tutti i link nel corpo dell’articolo in Sticky Links. Puoi anche convertire in Sticky Links i link nei widget e nelle stringhe.

WPML ti permetterà di sostituire in batch tutti i link normali con Sticky Links. Segnalerà anche eventuali link interrotti esistenti e ti aiuterà a correggerli.

Se hai abilitato gli Sticky Links dopo aver creato dei contenuti, i link in quei contenuti esistenti non vengono convertiti immediatamente in Sticky Links.

La schermata di amministrazione degli Sticky Links ti indica quanti contenuti potrebbero includere link normali (non sticky). WPML può scansionare quei contenuti e convertire tutti i link in Sticky Links. Fai clic sul pulsante Scansiona per farlo.

Puoi sempre riportare i tuoi link a permalink normali (non sticky) facendo clic su Revert sticky URLs to permalinks.

Collegarsi a pagine in una lingua diversa


A volte potresti voler inserire un link a una pagina che si trova in un’altra lingua. Poiché gli Sticky Links regolano i link automaticamente, questo potrebbe impedirti di farlo e regolare il link in modo che punti invece alla stessa lingua.

Per poter aggiungere link a pagine in altre lingue, devi aggiungere il seguente filtro al file functions.php del tuo tema.

Consentire link a pagine in altre lingue
add_filter( 'wpml_sl_blacklist_requests', 'wpml_sl_blacklist_requests', 10, 2 );

function wpml_sl_blacklist_requests( $blacklist, $sitepress ) {
    $blacklist[] = 'documentation';
    return $blacklist;
}

Nel codice precedente, usa l’array $blacklist per specificare tutti gli slug degli URL per le pagine nelle lingue originali a cui vuoi collegarti.

Nel nostro esempio, vogliamo collegarci alla versione inglese delle pagine “Documentation” (slug “documentation”) e “Page Builders” (slug “page-builders”), quindi usiamo le due righe seguenti:

Esempio di specifica dell’elenco di URL a cui consentire il collegamento
$blacklist[] = 'documentation';

$blacklist[] = 'page-builders';

Per impostazione predefinita, il plugin Sticky Links non cerca i link generati dagli shortcode.

Se hai uno shortcode sulla tua pagina che genera un link come “?page_id=XX”, verrà mostrato ai tuoi utenti senza essere convertito in un permalink.

Per gestire questi contenuti degli shortcode con gli Sticky Links, aggiungi questo snippet al tuo file functions.php:

Gestire i link all’interno del contenuto degli shortcode
if ( class_exists( 'WPML_Sticky_Links' ) ) {
	global $WPML_Sticky_Links;
	add_filter( 'do_shortcode_tag', [ $WPML_Sticky_Links, 'show_permalinks' ], 0 );
}

Scritto da Amir · Ultimo aggiornamento 19 febbraio 2025