Ação hook 'save_post' acionada ao excluir postagens

4

Desenvolvi um plug-in personalizado que reescreveu alguns conteúdos das minhas postagens, mas quando eu movo uma postagem para a lixeira, o gancho de ação 'save_post' é acionado e a postagem não é excluída.

Uma versão simplificada do meu código:

add_action('save_post', 'rewrite_post', 10, 2);

function rewrite_post($post_id) {
    remove_action('save_post', 'rewrite_post');

    $title = preg_replace('/\_/', ' ', get_the_title($post_id));
    $my_post = array();
    $my_post['ID'] = $post_id;
    $my_post['post_title'] = $title;
    $my_post['post_status'] = 'publish';
    wp_update_post($my_post);

    add_action('save_post', 'rewrite_post');
}

Como posso evitar que esse gancho seja acionado quando eu excluo as postagens?

    
por Nkoyan 05.04.2013 / 18:58

1 resposta

2

É provavelmente mais fácil verificar o status da postagem na sua função.

Não testado:

add_action( 'save_post', 'rewrite_post', 10, 2 );

function rewrite_post( $post_id ) {
    if ( 'trash' != get_post_status( $post_id ) ) {
        remove_action( 'save_post', 'rewrite_post' );
        $title = preg_replace( '/\_/', ' ', get_the_title( $post_id ) );
        $my_post = array( );
        $my_post['ID'] = $post_id;
        $my_post['post_title'] = $title;
        $my_post['post_status'] = 'publish';
        wp_update_post( $my_post );
        add_action( 'save_post', 'rewrite_post' );
    }
}
    
por vancoder 05.04.2013 / 19:10

Tags