Sauter la navigation
Mis à jour
juin 7, 2024

WPML Sticky Links empêche les liens entre les pages et les Articles de se rompre, même si les pages sont déplacées et renommées.

WordPress permet de modifier trop facilement l’adresse des pages, ce qui entraîne la rupture de tous les liens entrants (erreur 404). Voici quelques actions qui peuvent entraîner une erreur 404 :

  • Changer le parent de la Page
  • Modifier le slugs
  • Modifier la structure permalienne du site

WPML empêche les changements d’URL de rompre les liens entrants. Lorsque vous créez un lien, WPML le rend automatiquement collant. Au lieu de Boutique l’URL de cette Page (au moment de la création du lien), il stocke le numéro de la page. Cela ne changera jamais, quoi que vous fassiez.

Ensuite, lorsque la page est affichée, WPML insère le permalien de la page vers laquelle vous créez un lien. Lorsque l’URL change, toutes les pages qui y sont liées sont immédiatement mises à jour et renvoient à l’adresse correcte.

Les captures d’écran suivantes montrent à quoi ressemblent les liens internes dans la base de données, une fois que les Sticky Links sont activés.

Liens rendus Sticky par WPML vus dans l'éditeur de block
Liens rendus Sticky par WPML vus dans l’éditeur de block
Les liens devenus Sticky Links par WPML sont affichés dans l'éditeur Classic.
Les liens devenus Sticky Links par WPML sont affichés dans l’éditeur Classic.

Vos utilisateurs ne verront jamais ces liens « étranges ». Au lieu de cela, WPML les remplacera par les permaliens actuels lors de l’affichage des pages.

Une fois que vous avez activé le module Sticky Links, vous pouvez contrôler les chaînes de texte qu’il gère. Pour ce faire, rendez-vous sur la page WPML Sticky Links .

Sticky Links avant traitement
Sticky Links avant traitement

Par défaut, WPML transformera tous les liens dans le corps du message en liens Sticky Links. Vous pouvez également transformer les liens dans les Widgets et les chaînes de texte en liens collants.

WPML vous permet de remplacer par lots tous les liens réguliers par des liens autocollants. Il signale également les liens brisés existants et aide à les réparer.

Si vous avez activé Sticky Links après avoir créé du Contenu, les liens de ce contenu existant ne sont pas immédiatement transformés en liens collants.

L’écran d’administration des Sticky Links vous indique dans quelle mesure le Contenu peut inclure des liens normaux (non collants). WPML peut analyser ce Contenu et convertir tous les liens en liens collants. Pour ce faire, cliquez sur le bouton  » Scan ».

Vous pouvez toujours ramener vos liens à des permaliens normaux (non collants) en cliquant sur Revert sticky URLs to permalinks (Retourner les URL collants à des permaliens).

Lien vers des pages dans une autre langue

Il peut arriver que vous souhaitiez insérer un lien vers une page rédigée dans une autre langue. Étant donné que Sticky Links ajuste les liens automatiquement, il se peut qu’il vous empêche de le faire et qu’il ajuste le lien pour qu’il pointe vers la même langue à la place.

Pour pouvoir ajouter des liens vers des pages dans d’autres langues, vous devez ajouter le filtre suivant au fichier functions.php de votre thème.

Allow links to pages in other languages
add_filter( 'wpml_sl_blacklist_requests', 'wpml_sl_blacklist_requests', 10, 2 );

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

Dans le code ci-dessus, utilisez le tableau $blacklist pour spécifier tous les slugs d’URL des pages dans les langues d’origine vers lesquelles vous souhaitez créer un lien.

Dans notre exemple, nous voulons créer un lien vers la version anglaise des pages « Documentation » (slug « documentation ») et « Constructeurs de pages » (slug « page-builders »), nous utilisons donc les deux lignes suivantes :

Example of specifying the list of URLs to allow linking to
$blacklist[] = 'documentation';

$blacklist[] = 'page-builders';

Gestion des liens dans le contenu des Shortcodes

Par défaut, l’extension Sticky Links ne recherche pas les liens générés par les Shortcodes.

Si vous avez un Shortcode sur votre Page qui génère un lien comme « ?page_id=XX« , il sera affiché à vos utilisateurs sans être converti en permalien.

Pour gérer le contenu de ces Shortcodes avec Sticky Links, ajoutez ce snippet à votre fichier functions.php :

Handle links inside shortcode content
if ( class_exists( 'WPML_Sticky_Links' ) ) {
	global $WPML_Sticky_Links;
	add_filter( 'do_shortcode_tag', [ $WPML_Sticky_Links, 'show_permalinks' ], 0 );
}