Voyons cette fois une astuce qui m’aurait été utile un peu plus tôt : l’ajout d’une confirmation au moment de la publication, c’est-à-dire au clic sur le bouton ‘Publier’ d’un nouvel article.
Pourquoi confirmer ?
Avec WordPress, il m’arrive quelquefois de cliquer sur le bouton ‘Publier’ au lieu de celui permettant d’enregistrer le brouillon. Cette erreur vient le plus souvent de mon habitude du moment, c’est-à-dire pendant la création d’une page au brouillon après avoir modifié une série de pages déjà publiées.
Généralement, il s’agit de sites en construction, donc Google n’a pas le temps de voir le contenu, personne n’est abonné au flux RSS ni à la newsletter, et aucune publication sur les réseaux sociaux n’est faite… sauf une fois où j’ai publié un article en cours de rédaction et de test bien avant qu’il ne soit prêt.
En l’occurrence, c’était l’article sur la mise en place de fil d’Ariane avec WordPress SEO by Yoast : la partie configuration était prête, mais pas la partie concernant la vérification sur Google.
Et là c’était le drame. Un drame tout relatif, mais quand même : mes millions de followers ont été notifiés, pareil pour les centaines de milliers d’abonnés RSS, et je ne parle même pas des milliards d’abonnés au mail qui prévient de la publication d’un nouvel article (inscrivez-vous !). J’ai eu beau repasser l’article en brouillon et supprimer toutes traces de l’article, son URL était dans la nature.
Il était même présent quelques jours plus tard dans les pages introuvables de Google Webmaster Tools…
A ce moment là, une confirmation avant publication m’aurait été bien utile.
Comment faire ?
Pour ajouter cette confirmation, il suffit d’ajouter ce code à l’endroit habituel :
// Demande une confirmation avant la publication d'article function confirmPublication() { global $post; if (in_array(get_post_type($post), array("post", "page")) && (get_post_status($post->ID) != "publish")) { echo "<script langage='javascript'>jQuery(function() { if (jQuery('#publish')) { jQuery('#publish').on('click', function(e) { if (!confirm('Etes-vous certain de vouloir publier ce contenu maintenant ?')) { e.stopImmediatePropagation(); e.preventDefault(); return false; } else { return true; } } ); } });</script>"; } } add_action( "post_submitbox_misc_actions", "confirmPublication"); |
Voilà quelques explications si vous souhaitez personnaliser cette fonctionnalité :
- l’affichage du message de confirmation est en jQuery. Il utilise l’instance de jQuery faite par l’interface d’administration de WordPress.
- la confirmation apparaîtra pour les articles et les pages. Vous pouvez ajouter la confirmation sur d’autres types de post, les custom post types en général, en ajoutant le type dans les parenthèses de
array("post", "page")
- cette modification n’est effective que sur la page d’édition de l’administration WordPress
- vous pouvez personnaliser le texte pour rappeler aux autres rédacteurs, ou à vous-même, de vérifier la liste des règles avant la publication
- vous pouvez également remplacer l’appel à la fonction JavaScript
confirm
par autre chose de plus adapté à votre besoin.
Le mot de la fin
Vous voilà parés pour ne plus publier aucun article par erreur.
N’hésitez pas à partager vos personnalisations dans les commentaires !
Il existait un plugin assez sympa pour ce genre de problème – mais pas mis à jour depuis des années: http://www.echodesplugins.li-an.fr/plugins/undo-publish/
Peut-être plus agréable que le pop up toujours un peu saoulant.
Bonjour Li-An,
Comme souvent, je préfère le préventif au curatif.
D’ailleurs le plugin dont tu parles me fait penser à un autre : http://www.geekpress.fr/wordpress/extension/redirection-301-anciens-articles-1808/
Celui-ci permet de faire des redirections automatiquement, lors d’une suppression d’article suite à une erreur de publication ou non.
David
Il n’est pas curatif mais bien préventif: on a quelques secondes pour changer d’avis si on s’est trompé.
En effet, je n’avais pas compris que la publication était effective une fois le laps de temps écoulé.
Pour moi, l’article était publié, puis ‘dépublié’ en cas de clic sur le bouton ‘Undo’.
Le plugin dont tu parles est donc bien préventif. Au temps pour moi 🙂
David