Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I can hook custom function to each of trash_post, edit_post, private_to_publish etc. to meet some of my requirements, but I need also to check for more possible transitions like 'pending to draft', 'private to draft' and so on.

Something similar to this inexistent function:

if( post_status_changed($post_id) ) {
    my_custom_function();
}
share|improve this question
add comment

1 Answer

up vote 10 down vote accepted

See this Codex page. In general the hook is {old_status}_to_{new_status}. (Untested) but in your case, the hook would be pending_to_draft:

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

You might want to look up the wp_transition_post_status function. You could also use the 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
 }
share|improve this answer
    
Stephen, thank you a lot! I've read about Post Status Transitions before but I've missed that I can combine those statuses at will to get a hook. I'll try. Can't vote up because of low reputation... –  Max Yudin Mar 16 '12 at 17:33
    
I think you can always up-vote, in any case you can accept an answer by clicking the tick next to it. (Please do this as it takes the question of the unanswered pile and means others with the same question can quickly find the 'correct' answer :D) –  Stephen Harris Mar 16 '12 at 18:02
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.