Plugin d’ajout automatique du tag more sous WordPress
7 Fév 2012
écrit par"Oyé, modérateurs ou administrateurs de sites de communiqué de presse!". Un beau matin, @Papilouve via un petit tweet cherchait un plugin pour ajouter automatiquement le tag <!--more--> dans des articles WordPress au cas où il n'aurait pas été inséré (pour les auteurs indisciplinés). Ni une, ni deux, je me lance dans la création d'un tel plugin sans me poser de questions (elle avait sûrement cherché avant quand même!).
Puis en cherchant une fonction par rapport à ce tag, je tombe sur un plugin "Auto more tag". Plutôt que d'en refaire un, j'en parle à notre rédactrice SEO préférée mais je déchante très vite quand elle m'annonce qu'elle a essayé ce plugin et qu'il ne fonctionne pas correctement... Allons regarder ça de plus près!
Présentation du plugin
Ce plugin est relativement paramétrable:
- il est possible d'ajouter le tag <!--more--> après un certain {pourcentage du texte|nombre de mots|nombre de caractères}, la valeur numérique est paramétrable.
- pour ne pas couper les mots en deux, le tag s'insère ensuite au choix après un {espace|saut de ligne} (PHP_EOL= \n)-
- on peut décider via une autre option de mettre à jour tout les articles lors d'un changement de paramètre du plugin (Auto Update Posts On Settings Update?).
- pour ne pas pénaliser les tags qui auraient été placés correctement manuellement, une option qui permet de ne pas les ignorer et de les laisser en place.
Le détail qui tue
Après avoir pris le temps d'installer un WordPress sur un serveur de test pour ne pas exploser mon blog, j'ai épluché le code source du plugin. Pour placer des tags <!--more--> sans qu'ils soient écrasés par le plugin, le créateur de celui-ci (à savoir Travis Weston) a mis en place un système de [shortcode]. Ainsi, pour placer un <!--more--> dans un nouvel article sans que celui-ci soit supprimé puis remplacé automatiquement par le plugin Auto More Tag, il faut utiliser le shortcode [amt_override] juste devant <!--more-->.
Exemple:
Cet article commence ici et je veux mettre un lien lire la suite juste ici [amt_override]<!--more--> pour que mon contenu ne soit pas dupliqué, j'affiche ainsi uniquement le début de mon article sur ma home
Et les articles qui existent déjà avec un <!--more--> dans le contenu de l'article, ils vont être modifiés? Oui, et c'est le problème qu'a rencontré Audrey. Pour éviter ce genre de désagrément, on va exécuter une petite requête sur la base de données MySql juste avant d'activer le plugin afin de remplacer les tag <!--more--> par [amt_override]:
UPDATE wp_posts SET post_content = REPLACE (post_content, '<!--more-->', '[amt_override]<!--more-->');
Sauvegarder votre base de données avant, à vos risques et périls 🙂
Bonus
Oui, c'est bien gentil tout ça, mais un lien vers le plugin ça serait plus sympa: Wp plugin Auto More Tag. Merci encore à son développeur: Travis Weston.
Ce plugin n'est pas destiné uniquement aux sites de CP bien évidemment, mais c'est là qu'il me semblait assez utile. Il rendra aussi de précieux services aux blogueurs "tête en l'air"! Au sujet des sites de CP, sans vouloir relancer le débat, voici une petite réflexion sur les sites de communiqués de presse dans un article chez Axenet.
écrit dans Drupal, Wordpress et SEO par |