Como posso executar uma função personalizada quando o status da postagem é alterado?

3

Eu posso ligar a função personalizada a cada um dos trash_post , edit_post , private_to_publish etc. para atender a alguns dos meus requisitos, mas também preciso verificar se há mais transições possíveis como 'pendentes para rascunho' , 'privado para rascunho' e assim por diante.

Algo semelhante a essa função inexistente:

if( post_status_changed($post_id) ) {
    my_custom_function();
}
    
por Max Yudin 16.03.2012 / 13:05

1 resposta

14

Veja esta página do Codex . Em geral, o gancho é {old_status}_to_{new_status} . (Não testado), mas no seu caso, o gancho seria pending_to_draft :

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

Você pode pesquisar a função wp_transition_post_status . Você também pode usar o gancho: 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
 }
    
por Stephen Harris 16.03.2012 / 13:27