Enganche de acción 'save_post' activado cuando se eliminan publicaciones

4

Desarrollé un complemento personalizado que reescribe parte del contenido de mis publicaciones, pero cuando muevo una publicación a la papelera, se activa el gancho de acción 'save_post' y la publicación no se elimina.

Una versión simplificada de mi 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');
}

¿Cómo puedo evitar que este enganche se active cuando elimino publicaciones?

    
pregunta Nkoyan 05.04.2013 - 18:58

1 respuesta

2

Probablemente sea más fácil verificar el estado de la publicación dentro de su función.

Sin probar:

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' );
    }
}
    
respondido por el vancoder 05.04.2013 - 19:10

Lea otras preguntas en las etiquetas