web-dev-qa-db-fra.com

Comment exécuter une fonction personnalisée lorsque le statut de la publication est modifié?

Je peux associer une fonction personnalisée à chacun des trash_post, edit_post, private_to_publish etc. afin de répondre à certaines de mes exigences, mais je dois également vérifier s'il existe d'autres transitions possibles, par exemple 'en attente de rédaction' , 'privé pour rédiger' etc.

Quelque chose de semblable à cette fonction inexistante:

if( post_status_changed($post_id) ) {
    my_custom_function();
}
3
Max Yudin

Voir cette page du Codex . En général, le hook est {old_status}_to_{new_status}. (Non testé) mais dans votre cas, le hook serait pending_to_draft:

 add_action('pending_to_draft','wpse45803_pending_to_draft');
 function wpse45803_pending_to_draft($post){
  //Do something
 }

Vous voudrez peut-être rechercher la fonction wp_transition_post_status . Vous pouvez aussi utiliser le hook: transition_post_status

 add_action('transition_post_status','wpse45803_transition_post_status',10,3);
 function wpse45803_transition_post_status($new_status,$old_status,$post){
  //Do something
 }
14
Stephen Harris