Guide des technologies

Ajouter une confirmation avant publication dans WordPress

5 min read WordPress Mis à jour 20 Oct 2025
Confirmation avant publication WordPress
Confirmation avant publication WordPress

Pourquoi ajouter une confirmation ?

Publier un article par erreur arrive vite. Un article non relu, programmé pour une date future ou incomplet peut être partagé automatiquement sur vos réseaux ou par e-mail à vos abonnés. Une confirmation interactive réduit les risques d’erreur humaine, protège votre image et évite des problèmes SEO liés à du contenu publié prématurément.

Important — cette confirmation n’est pas une sauvegarde : continuez à sauvegarder vos brouillons et à utiliser des révisions.

Méthode simple : utiliser un plugin gratuit

Si vous préférez ne pas toucher au code, le moyen le plus rapide est d’installer un plugin conçu pour afficher une confirmation avant les actions sensibles.

  • Plugin recommandé (gratuit) : Confirm Publishing Actions.
  • Installation : WordPress → Extensions → Ajouter → rechercher « Confirm Publishing Actions », installer et activer. Ou téléverser dans wp-content/plugins.

Fonctionnement : après activation, le plugin demande une confirmation lors des actions Publier, Mettre à jour et Supprimer. Il n’a pas (généralement) de configuration complexe.

Avantages : installation rapide, aucune ligne de code, maintenance par l’auteur du plugin.

Limites : dépend d’une extension tierce ; peut ne pas couvrir tous les cas d’usage (éditeurs tiers, automatisations) ou les interfaces futures.

Méthode sans plugin : ajouter un extrait de code (recommandé pour développeurs)

Avantages : pas d’extension supplémentaire, personnalisation complète, portabilité (functions.php ou plugin spécifique au site).

Où le mettre :

  • Dans le fichier functions.php du thème enfant (évitez le thème parent pour ne pas perdre le code lors d’une mise à jour) ; ou
  • Dans un plugin « site-specific » (préférable pour que le comportement survive aux changements de thème).

Extrait compatible Classic Editor et éditeur par blocs (Gutenberg) — copiez/collez tel quel :


  document.addEventListener("DOMContentLoaded", function(){
    // Classic Editor : bouton avec id #publish
    var publishBtn = document.getElementById("publish");
    if(publishBtn){
      publishBtn.addEventListener("click", function(e){
        if(!confirm(' . json_encode($message) . ')){
          e.preventDefault();
          e.stopPropagation();
        }
      }, true);
    }

    // Gutenberg / Éditeur de blocs : plusieurs sélecteurs possibles
    function attachGutenberg(){
      var gutBtn = document.querySelector('#editor-post-publish-button, .editor-post-publish-panel__toggle, .components-button.editor-post-publish-button');
      if(gutBtn && !gutBtn.dataset.confirmAttached){
        gutBtn.addEventListener('click', function(e){
          if(!confirm(' . json_encode($message) . ')){
            e.preventDefault();
            e.stopPropagation();
          }
        }, true);
        gutBtn.dataset.confirmAttached = '1';
      }
    }
    // Attacher au chargement et à certains événements dynamiques
    attachGutenberg();
    document.body.addEventListener('click', attachGutenberg);
  });
  ';
}
add_action('admin_footer','sp_add_publish_confirmation');

Notes techniques :

  • Le code utilise admin_footer pour injecter un petit script JavaScript côté administration.
  • Pour sécuriser et adapter le message, modifiez la variable $message.
  • Si vous préférez une traduction côté JS, vous pouvez remplacer la chaîne statique par une fonction d’internationalisation (ex : escjs(_(…))).

Sécurité : n’injectez pas d’entrées non échappées dans le script. Ici, la chaîne est codée proprement via json_encode depuis PHP.

Alternatives et variantes

  • Utiliser un plugin de workflow éditorial (par ex. Edit Flow, PublishPress) pour ajouter des étapes de relecture et des verrouillages avant publication.
  • Désactiver les partages automatiques (réseaux sociaux/ newsletters) jusqu’à validation manuelle.
  • Ajouter une confirmation spécifique pour les mises à jour majeures (expliciter la différence entre « Mettre à jour » et « Publier »).

Méthodologie recommandée (mini-SOP)

  1. Sauvegarder le site (backup complet) avant toute modification du thème ou ajout de code.
  2. Tester le comportement sur un environnement de staging ou local.
  3. Ajouter le code dans un plugin site-specific ou dans functions.php du thème enfant.
  4. Vérifier Classic Editor et Gutenberg, ainsi que les plugins d’automatisation (ex. partage automatique) pour s’assurer qu’ils respectent la nouvelle confirmation.
  5. Déployer en production et informer l’équipe.

Checklist rôle-par-rôle

  • Administrateur : valider la politique (confirmation pour tous ou seulement certains rôles), déployer et monitorer.
  • Éditeur/Rédacteur : tester et faire remonter les faux positifs ou cas où la confirmation bloque un workflow.
  • Développeur : ajouter le snippet au plugin site-specific, s’assurer de l’échappement, écrire des tests manuels.

Dépannage — quand la confirmation ne s’affiche pas

  • Gutenberg lourdement modifié : certains thèmes ou plugins personnalisent le DOM du post editor et changent les sélecteurs. Essayez d’ajouter un sélecteur alternatif ou d’utiliser l’API JavaScript de Gutenberg pour intercepter l’action.
  • Plugin de cache/admin-optimization : désactivez temporairement pour vérifier.
  • Publication via API/REST ou via XML-RPC : ces méthodes ne déclenchent pas la confirmation JS côté navigateur ; si vous avez des automatisations, implémentez des règles côté serveur (capabilities, hooks save_post).

Contournement pour automatisations : ajoutez une meta meta_protected ou un hook save_post qui vérifie un indicateur et empêche la publication si nécessaire.

Quand cette solution échoue (contre-exemples)

  • Publication déclenchée par un script externe (webhook, plugin tiers) qui envoie directement une requête REST : la confirmation côté client n’intervient pas.
  • Utilisateurs non techniques utilisant des outils d’automatisation : la confirmation peut être contournée.

Bonnes pratiques et recommandations

  • Préférez un plugin site-specific ou un plugin mu (must-use) pour conserver le comportement lors d’un changement de thème.
  • Documentez la raison de la confirmation dans le guide d’édition interne.
  • Combinez confirmation et workflows de relecture pour les sites avec plusieurs contributeurs.

Résumé

Ajouter une confirmation avant publication est une mesure simple, à faible coût, qui réduit les erreurs humaines. Choisissez le plugin si vous voulez la solution la plus rapide. Choisissez le snippet PHP/JS si vous souhaitez garder votre site léger et contrôler le comportement (ou couvrir des sélecteurs spécifiques, Classic + Gutenberg). Testez toujours sur un environnement de staging et documentez les changements.

Important — si vos publications sont également envoyées automatiquement à des abonnés ou partagées sur des réseaux, vérifiez ces intégrations après le déploiement.

Критерии приёмки

  • Le bouton Publier affiche une fenêtre de confirmation dans le Classic Editor.
  • Le bouton Publier affiche une fenêtre de confirmation dans Gutenberg.
  • Les automatisations serveur (REST, scripts) restent contrôlées séparément si nécessaire.

Si vous rencontrez des problèmes lors de l’implémentation, décrivez votre environnement (version WordPress, éditeur utilisé, plugins de partage) et je vous aiderai à adapter le code.

Auteur
Édition

Matériaux similaires

Nouvelle section Clavier de Windows 11
Windows

Nouvelle section Clavier de Windows 11

Désactiver X‑Ray sur Amazon Prime Video
Streaming

Désactiver X‑Ray sur Amazon Prime Video

Écran d'appel entrant absent sur iPhone : réparer
iPhone

Écran d'appel entrant absent sur iPhone : réparer

Widgets conditionnels WordPress : guide pratique
WordPress Plugins

Widgets conditionnels WordPress : guide pratique

Mises à jour Windows 11 en avance avec ViVeTool
Windows 11

Mises à jour Windows 11 en avance avec ViVeTool

Dossier partagé VirtualBox — Guide complet
Virtualisation

Dossier partagé VirtualBox — Guide complet