web-dev-qa-db-fra.com

Effectuer une action lorsque post est mis à jour/publié

J'aimerais exécuter une requête personnalisée à l'aide de métadonnées chaque fois qu'une publication est mise à jour ou publiée.

Y at-il quelque chose que je peux mettre dans functions.php pour déclencher lorsque ces événements se produisent?

5
Kyle

L'action save_post est déclenchée lorsqu'une publication est mise à jour et/ou publiée, y compris lorsqu'une nouvelle publication est insérée.

<?php
add_action( 'save_post', 'wpse41912_save_post' );
function wpse41912_save_post()
{
    // do stuff
}

Si vous souhaitez que vos fonctions ne soient activées que lorsqu'une publication est en cours d'édition, vous pouvez vous connecter à edit_post.

Si vous voulez que le message soit envoyé lorsqu'une publication est déplacée du brouillon à la publication, vous pouvez vous connecter à transition_post_status.

11
chrisguitarguy

Vous pouvez utiliser plusieurs actions . Par exemple:

  • save_post
  • edit_post
  • publish_post
  • etc.

Bien que moins utilisé, il existe également des crochets de transition post-statut .

5
Chip Bennett

le hook edit_post est probablement le meilleur hook ... puisqu'il se déclenche à chaque publication/mise à jour d'une page/page. save_post est une autre option viable ... peut-être mieux si vous n'en avez pas besoin pour être activé lorsque les commentaires sont mis à jour.

http://codex.wordpress.org/Plugin_API/Action_Reference

la page save_post du codex contient un exemple de fonction qui se déclenche à chaque fois qu'une publication est enregistrée:

http://codex.wordpress.org/Plugin_API/Action_Reference/save_post

3
helgatheviking

Si vous voulez exécuter une action quand une post-mise à jour/sauvegarde personnalisée -

add_action('save_post','save_post_callback');
function save_post_callback($post_id){
global $post; 
if ($post->post_type != 'MY_CUSTOM_POST_TYPE_NAME'){
    return;
}
//if you get here then it's your post type so do your things....
}
0
Amritosh pandey