Quelle est la différence entre le hook WordPress « save post » et le « WP Insert Post » ?

Les hooks WordPress save_post et wp_insert_post sont deux actions différentes utilisées pour interagir avec le processus de sauvegarde ou d’insertion d’un article dans WordPress. Voici les distinctions principales :

1. save_post

  • Quand est-il déclenché ?
    • Ce hook est appelé après qu’un article a été sauvegardé ou mis à jour dans la base de données.
    • Il se déclenche à chaque fois que vous sauvegardez un article, y compris lors de sa création initiale, d’une mise à jour ou de son enregistrement en brouillon.
  • Paramètres passés au hook :

    • $post_id :

      ID de l’article sauvegardé.
    • $post :

      Objet de l’article (WP_Post).
    • $update :

      Booléen indiquant si l’article a été mis à jour (true) ou créé (false).
  • Utilisations courantes :

    • Ajouter des métadonnées personnalisées après la sauvegarde d’un article.
    • Déclencher des actions spécifiques après qu’un article est enregistré (exemple :

      envoyer une notification, mettre à jour un index de recherche, etc.).
    • Exemple :

      add_action(‘save_post’, ‘custom_save_post_handler’, 10, 3);
      function custom_save_post_handler($post_id, $post, $update) {
      // Ne pas exécuter pour les sauvegardes automatiques ou les révisions
      if (defined(‘DOING_AUTOSAVE’) && DOING_AUTOSAVE) {
      return;
      }
      if ($post->post_type !== ‘post’) {
      return;
      }

      // Ajouter une action personnalisée ici
      update_post_meta($post_id, ‘_custom_meta_key’, ‘valeur personnalisée’);
      }


  • Points clés :

    • Ce hook est souvent utilisé pour modifier ou ajouter des données supplémentaires après l’enregistrement.
    • Il est possible de vérifier si l’article a été mis à jour ou inséré via le paramètre $update.

2. wp_insert_post

  • Quand est-il déclenché ?
    • Ce hook est appelé immédiatement avant ou après qu’un article a été inséré ou mis à jour dans la base de données.
    • Il peut être utilisé avant que les métadonnées ou les taxonomies associées ne soient enregistrées.
  • Paramètres passés au hook :

    • $post_id :

      ID de l’article inséré ou mis à jour.
    • $post :

      Objet de l’article (WP_Post).
    • $update :

      Booléen indiquant si l’article a été mis à jour (true) ou inséré (false).
  • Utilisations courantes :

    • Modifier des données d’un article avant ou après l’insertion dans la base de données.
    • Implémenter des contrôles ou des actions à un moment précis du processus d’insertion.
    • Exemple :

add_action(‘wp_insert_post’, ‘custom_wp_insert_post_handler’, 10, 3);
function custom_wp_insert_post_handler($post_id, $post, $update) {
if ($post->post_type !== ‘post’) {
return;
}

// Exemple :

enregistrer une action de journalisation
error_log(« Article {$post_id} inséré ou mis à jour. »);
}

  • Points clés :

    • Contrairement à save_post, ce hook intervient pendant le processus d’insertion et avant certaines étapes finales.
    • Les taxonomies et métadonnées peuvent ne pas être complètement enregistrées lorsque ce hook est déclenché.

Différences clés

Aspect save_post wp_insert_post
Moment de déclenchement Après la sauvegarde complète Pendant le processus d’insertion
Données accessibles Article complet, métadonnées prêtes Peut manquer certaines métadonnées ou taxonomies
Utilisation principale Actions post-sauvegarde Contrôle ou modification durant l’insertion

En résumé :

  • Utilisez save_post si vous avez besoin de travailler avec un article après qu’il a été entièrement sauvegardé, en incluant ses métadonnées et taxonomies.
  • Utilisez wp_insert_post si vous devez intervenir au cours du processus d’insertion ou exécuter des actions spécifiques plus tôt dans ce cycle.

Idevart, c’est d'abord l’histoire d’un passionné du web depuis plus d 15 ans, qui transforme les idées en solutions digitales performantes.

© 2025 Idevart