Error después de eliminar el tipo de publicación personalizada con una función (no se usa papelera)

2

Estoy usando una función que construí para eliminar todas las publicaciones de un usuario después de eliminar una publicación específica. En mi caso, estoy usando un tipo de publicación personalizada llamada compañía. Y tipos de publicaciones personalizadas adicionales como trabajos o eventos. Si se elimina el perfil de la empresa, también se eliminan todas las demás publicaciones de este usuario.

Mi problema ahora: si hago esto para publicaciones normales, las publicaciones se moverán a la papelera. Todo bien aquí ...

Pero si hago esto para los otros tipos de publicaciones personalizadas, se eliminan de forma completa sin basura. Podría desecharlos si los elimino en el área de administración. ¿Así que la basura está activa ??

¿Alguna idea de qué va mal? Aquí está mi código:

function delete_all_posts_from_author($post_id) {


    global $post;
    $id = $post->ID;

    // Only trigger if post type is "company"
    if ( get_post_type($id) == "company" ) {

        $author_id = $post->post_author;

        $posts_from_author = get_posts(
            array(
                'posts_per_page'    => -1,
                'post_status'       => 'publish',
                'post_type'         => array('event','job'),
                'author'            => $author_id,
                'fields'            => 'ids', // Only get post ID's
            )
        );

        foreach ( $posts_from_author as $post_from_author ) {
            wp_delete_post( $post_from_author, false); // Set to False if you want to send them to Trash.
        }
    }


}

add_action( 'publish_to_trash',  'delete_all_posts_from_author', 10, 1 );
    
pregunta Cray 04.10.2017 - 17:42

1 respuesta

4

Al observar la fuente, el argumento $force_delete en wp_delete_post() solo se aplica a las publicaciones, páginas y archivos adjuntos nativos.

Mi suposición rápida sería que para los CPT necesitarías usar la función explícita wp_trash_post() si quieres un comportamiento de basura.

    
respondido por el Rarst 04.10.2017 - 18:58

Lea otras preguntas en las etiquetas