Comment signaler aux visiteurs de votre site qu'ils se trouvent sur un ancien article dont le contenu est susceptible d'être périmé ? Dans cet article, je vais vous montrer comment afficher une notification sur WordPress pour spécifier qu'un contenu risque de ne plus être à jour.
Ce type de mise en garde sur un ancien article peut être utile si vos contenus ont tendance à se démoder et sont susceptibles d'induire les gens en erreur. Cela peut pousser les lecteurs à être plus vigilants quant à l'usage qu'ils en font.
Des plugins pour signaler un ancien article
Certains plugins WordPress, comme Old Post Notification et Juiz Outdated Post Message, permettent d'afficher une notification sur un ancien article. Cependant, à l'heure où j'écris, ils n'ont pas été mis à jour depuis un bon moment.
Ce sont des plugins "simples", qui remplissent une fonction basique et n'ont donc pas forcément vocation à être mis à jour très souvent au même titre que des plugins plus complexes. Cependant, il convient de les utiliser avec prudence car ils sont susceptibles de provoquer des erreurs.
Je vous conseille plutôt de vous tourner vers la méthode proposée juste après, qui consiste à utiliser quelques lignes de code pour ajouter le même type de notification.
A toutes fins utiles, un plugin comme Juiz Outdated Post Message propose des options simples : vous définissez un délai de péremption, 360 jours par défaut, au bout duquel vous estimez que les articles risquent de ne plus être à jour. Ce délai dépend bien sûr de la nature de vos contenus, qui se démodent plus ou moins vite selon la thématique.
Vous choisissez ensuite le texte de la notification et à quel endroit elle s'affiche. Et c'est tout !
Old Post Notification propose une approche plus personnalisable : le plugin crée sur chaque article une case à cocher, qui permet de signaler le contenu comme étant périmé et de renseigner un message sur mesure. Il faut le faire article par article, mais cela a l'avantage de vous laisser choisir ce que vous estimez être un "ancien article".
Afficher une notification d'ancien article à la main
Comme je vous le disais, les plugins évoqués sont anciens. Vous pouvez donc avoir recours à une méthode simple à la place : quelques lignes de code à copier dans le fichier qui contrôle l'affichage de vos articles sur votre thème WordPress (ou de votre thème enfant, si vous effectuez vos personnalisations dans un thème enfant comme cela est conseillé).
Commencez par vous connecter au serveur sur lequel est stocké votre site, en utilisant un client FTP comme FileZilla. Allez dans le dossier où est rangé votre site WordPress (souvent, il s'agit d'un dossier intitulé "www" ou "public_html"). Vous devriez voir des dossiers baptisés "wp-admin", "wp-content" et "wp-includes".
Entrez dans le dossier wp-content, puis dans "themes", puis dans le dossier de votre thème ou thème enfant.
Dans un premier temps, vous allez ouvrir le fichier style.css du thème, qui contrôle la mise en forme. Vous allez y ajouter quelques lignes de code, qui permettront à la notification d'ancien article de s'afficher de manière esthétique.
A la fin du fichier style.css, copiez ceci :
.ancienarticle {
background: #d0e9ff;
border:1px solid #ccd0d4;
border-left-width:4px;
border-left-color:#505989;
line-height:1.4;
padding:10px 15px;
margin: 20px 10px;
}
Que signifie ce bout de code ? Il définit la couleur de fond de notre notification "ancienarticle" (background), la bordure qui l'entoure (border) d'une épaisseur d'un pixel, sauf à gauche (left) où elle fait 4 pixels. Les couleurs, comme "#ccd0d4", sont exprimées en notation hexadécimale (si vous tapez "couleur hexadécimale" sur Google, vous accéderez à un outil permettant d'obtenir le code d'une couleur). On définit également la hauteur de la ligne de texte (line height), l'espacement entre le texte de la notification et la bordure (padding) et la marge entourant la notification (margin).
La deuxième étape consiste à définir ce qui déclenche l'affichage de la notification. Pour ce faire, nous allons créer un code simple qui indique :
- Un délai de péremption - Nombre de jours au bout duquel vous considérez qu'un article n'est plus à jour, 730 dans mon exemple.
- Ce délai de péremption en secondes - Dans mon exemple, 730 jours avec 24h par jour, 60 minutes par heure et 60 secondes par minute.
- La date actuelle - On récupère la date actuelle convertie en secondes (la lettre U désigne le nombre de secondes depuis l'époque Unix, c'est-à-dire depuis le 1er janvier 1970).
- La date de dernière modification - On soustrait ensuite la date à laquelle l'article a été modifié pour la dernière fois, afin de savoir quel délai s'est écoulé entre cette date et aujourd'hui.
- La condition - Si le résultat du calcul est supérieur à la durée que vous avez définie comme délai de péremption, alors on affiche la notification.
En code php, ça se traduit comme ceci :
<?php
$perime = 730;
$ancienarticle = $perime*60*60*24;
if((date('U')-get_the_modified_time('U')) > $ancienarticle) {echo '<div class="ancienarticle">Cet article n\'a pas été mis à jour depuis un certain temps. Il est susceptible de contenir des informations périmées.</div>';}?>
Attention : si le texte de votre notification comporte une apostrophe, vous devez la précéder d'un antislash, sans quoi le code "cassera" votre site. Regardez l'exemple fourni, et pensez bien à le faire pour l'ensemble des apostrophes.
Vous allez devoir copier ce code à l'endroit où vous souhaitez que la notification s'affiche. La plupart du temps, il s'agit d'un fichier de votre thème baptisé single.php, qui contrôle l'affichage des articles. Mais il peut aussi porter un autre nom si le thème a été personnalisé, par exemple "content-single.php". Il peut être rangé dans un sous-dossier de votre thème.
Dans ce fichier, cherchez un morceau de code qui ressemble à ceci :
<?php the_title(); ?>
C'est le code qui contrôle l'affichage du titre de l'article. Vous pouvez copier le code de la notification avant ou après, selon l'emplacement où vous voulez qu'elle s'affiche.
Notez que si le titre est encadré par des balises h1, ce qui devrait normalement être le cas si le thème est bien codé, il faudra placer le code de la notification avant ou après ces balises, mais pas au milieu.
Exemple :
<?php $perime = 720; $ancienarticle = $perime*60*60*24; if((date('U')-get_the_modified_time('U')) > $ancienarticle) { echo '<div class="ancienarticle">Cet article n\'a pas été mis à jour depuis un certain temps. Il est susceptible de contenir des informations périmées.</div>'; } ?><h1><?php the_title(); ?></h1>
Ou comme ci :
<h1><?php the_title(); ?></h1><?php $perime = 720; $ancienarticle = $perime*60*60*24; if((date('U')-get_the_modified_time('U')) > $ancienarticle) { echo '<div class="ancienarticle">Cet article n\'a pas été mis à jour depuis un certain temps. Il est susceptible de contenir des informations périmées.</div>'; } ?>
Une notification de vieil article, bonne ou mauvaise idée ?
J'ai un avis mitigé sur ce type de notification, c'est d'ailleurs pour cette raison que vous n'en voyez pas sur ce blog.
Si vous avez la certitude que vos articles se périment au-delà d'un certain délai, cela peut rendre service aux internautes… mais dans l'idéal, il faut aussi mettre en place un processus de gestion des contenus périmés. Par exemple, est-il toujours utile que ces contenus soient référencés s'ils ne sont plus pertinents ? Pourraient-ils être remis à jour ?
Dans la plupart des situations, l'âge d'un article n'induit pas forcément une "péremption" des informations. Un article peut avoir 3 ou 4 ans et rester tout à fait pertinent… tout comme un article publié il y a 6 mois peut déjà être démodé. J'en sais quelque chose sur ce blog ! Il m'est déjà arrivé de publier un article sur un plugin qui, une ou deux semaines plus tard, a modifié entièrement son interface et ses options. Tout l'article était bon à refaire et pourtant, il était tout "frais" !
Le problème d'une notification de contenu périmé, c'est qu'elle signale une baisse de pertinence, donc de valeur ajoutée du contenu pour l'internaute. Un novice sur le sujet, qui n'a pas les connaissances pour décider de lui-même si un article est encore à jour ou pas, peut avoir tendance à prendre la notification au pied de la lettre et à arrêter sa lecture immédiatement.
Certains choisissent, pour cette raison, d'afficher plutôt la notification en fin d'article. On peut aussi en imaginer un détournement. Au lieu d'afficher un message disant que l'article "est susceptible de contenir des informations périmées", vous pouvez inciter l'internaute à vous signaler un besoin de mise à jour.
Par exemple sous cette forme, en remplaçant "URL" par l'URL de votre page Contact :
<?php $perime = 720; $ancienarticle = $perime*60*60*24; if((date('U')-get_the_modified_time('U')) > $ancienarticle) { echo '<div class="ancienarticle">Cet article n\'a pas été mis à jour depuis un certain temps. Si vous pensez qu\'il mérite d\'être réactualisé, <a href="URL">contactez-moi</a> pour me le signaler.</div>'; } ?><h1><?php the_title(); ?></h1>
Pour clore cet article, je partage avec vous ici quelques conseils pour remettre à jour un vieil article au lieu de le laisser sombrer dans l'oubli !