Remonter des articles sans modifier leur date de publication

J’ai enfin trouvé comment résoudre un problème que j’avais depuis plusieurs années sur mon blog personnel : je souhaite remonter de temps en temps un article que j’ai mis à jour, mais sans toucher à sa date de publication. Faute de mieux, je mettais l’article en question en avant, ce qui le plaçait effectivement sur la page d’accueil. C’était une solution toutefois temporaire et l’article disparaissait quand je retirais la mise en avant.

voiretmangerfr-full
Le résultat final : le premier article affiché sur la page d’accueil a été publié en 2015.

Sans compter que je voulais aller un petit peu plus loin. Mon idée était de remonter un article comme si je venais de le publier, et ainsi de le voir en tête sur la page d’accueil, puis descendre la liste au fil du temps. Mais tout cela, sans modifier la date originale de publication qui reste une information importante à mes yeux. Difficulté supplémentaire, l’article mis à jour doit apparaître dans le flux RSS du blog, à nouveau comme s’il s’agissait d’une publication supplémentaire.

Pourquoi vouloir ce comportement ? J’écris sur des séries et je mets à jour un article unique à chaque nouvelle saison. Je pourrais créer un nouvel article à chaque fois, mais je préfère garder un article unique, modifié au fil du temps.

serie-saison-exemple.png
Exemple de mise à jour de série sur le blog.

Un module pour renvoyer vers l’article

La solution que j’ai mise en place est simple à utiliser et surtout, elle repose sur des briques de base de WordPress et sur le module Page Links To. Ce dernier permet de remplacer le permalien de n’importe quel article, pour le remplacer par une URL, qu’il s’agisse d’un lien en interne, ou même d’une URL externe si vous le souhaitez.

Dans mon cas, je saisis le percaline de la série en question avec, petite subtilité supplémentaire, une ancre HTML qui mène directement à la bonne saison. Concrètement, voici à quoi ressemble un lien :

https://voiretmanger.fr/black-mirror-brooker-channel-4/#4

Notez le « #4 » à la fin, cela indique au navigateur de se caler directement au bon endroit dans l’article. Pour que cela fonctionne, j’ai défini en amont l’identifiant de la saison en ajoutant un identifiant au titre correspondant à la saison. Il y a plusieurs méthodes pour exploiter cette fonction de base en HTML, pour ma part j’écris tous mes articles en Markdown (j’utilise la fonction de Jetpack) et j’exploite une de ses fonctions qui me permet de définir une ancre ainsi :

ancre-ia.png
En Markdown, le « {#4} » permet de définir une ancre, exploitable ensuite dans les liens.

Créer un lien vers une section précise de l’article n’est pas obligatoire toutefois, cela fonctionnerait également très bien avec le lien permanent original.

Un nouveau format d’article pour différencier les contenus

J’aurais pu me contenter de ce module, mais je voulais séparer plus strictement le contenu « normal », à savoir les articles que je publie régulièrement sur le blog, des mises à jour de série que je souhaite afficher sur la page d’accueil et dans le flux RSS. C’est pourquoi j’ai créé un nouveau format d’article, un post type.

Il y a plusieurs méthodes pour en créer, la plus simple étant sans doute d’installer ce module dédié, mais je l’ai fait avec quelques lignes de code. Pour me simplifier la tâche, j’ai utilisé un assistant, ce site qui génère le code en fonction des paramètres que vous indiquez. Dans mon cas, par exemple, je ne voulais pas que ce type d’article apparaisse ou que ce soit, ni sous la forme d’archive, ni dans la recherche. Il est totalement masqué, sauf pour l’administrateur du site (moi) qui peut créer et mettre à jour des éléments.

post-type-code.png
Extrait du code qui sert à générer le format d’article utilisé pour les mises à jour. L’intégralité du code est visible à cette adresse.

Les paramètres dépendent largement de vos besoins. Pour ma part, outre le masquage partout de ce format d’article, j’ai aussi défini un formulaire très simple avec un titre et une image mise en avant. Le module installé précédemment affiche automatiquement son formulaire, ce qui me permet ainsi de choisir l’URL à ouvrir.

Avec ces éléments, je peux créer des mises à jour avec un petit peu de contexte. Par exemple, je peux indiquer le nom de la saison dans le titre de l’article et utiliser une image différente pour celle qui est mise en avant, comme je le fais déjà dans les articles eux-mêmes. Vous pourrez ajuster ces éléments en fonction de vos besoins, il est possible d’ajouter un champ de contenu pour mettre quelques lignes de texte, ou bien encore un résumé… à vous de voir.

formulaire-maj.png
Voici le formulaire qui sert à publier une mise à jour d’article sur mon blog.

Pour finir, j’ai modifié deux éléments pour afficher le nouveau type sur la page d’accueil et dans le flux RSS. Il s’agit d’une ligne de plus dans le fichier index.php et de quelques lignes supplémentaires dans le functions.php. Cela dépend de chaque thème WordPress, certains sont prévus pour accepter tous les formats d’article par défaut… bref, difficile de généraliser sur ce point.

2 commentaires sur “Remonter des articles sans modifier leur date de publication

    1. Bonjour,

      Oui et non. Ça suffit à placer l’article en tête du blog, mais il disparaît aussitôt que vous retirez la mise en avant.

      Je voulais pousser un article en tête, mais ensuite le laisser dans le flux, derrière les articles publiés par la suite, sans avoir à gérer la mise en avant. Ma solution répond a un besoin spécifique, dans la majorité des cas, une mise en avant peut suffire en effet.

      J'aime

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s