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 :
-
- 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Ă©.
- Contrairement Ă