¿Hay un gancho recover_post para ir con el gancho trash_post?

2

Estoy usando el gancho trash_post para establecer una marca en una tabla personalizada para indicar que este elemento está "eliminado", pero cuando el usuario elige restaurar esa publicación, ¿qué gancho puedo usar para eso? No pude encontrar nada en esta página enlace , pero quizás haya otra manera de resolver el problema.

¡Gracias!

    
pregunta NightHawk 04.05.2012 - 22:47

3 respuestas

4

Mirando el código para WP 3.3.2, parece que trash_post es en realidad wp_trash_post . De la función wp_trash_post() en /wp-includes/post.php :

do_action('wp_trash_post', $post_id);

add_post_meta($post_id,'_wp_trash_meta_status', $post['post_status']);
add_post_meta($post_id,'_wp_trash_meta_time', time());

$post['post_status'] = 'trash';
wp_insert_post($post);

wp_trash_post_comments($post_id);

do_action('trashed_post', $post_id);

Entonces ... revisaría dos veces el gancho que usas para establecer tu marca inicial.

Sin embargo, hay un enlace que puedes usar para detectar cuándo un usuario restaura una publicación. Se llama apropiadamente untrash_post .

Aquí está en acción desde el mismo archivo central:

function wp_untrash_post($post_id = 0) {
    if ( !$post = wp_get_single_post($post_id, ARRAY_A) )
        return $post;

    if ( $post['post_status'] != 'trash' )
        return false;

    do_action('untrash_post', $post_id);

    $post_status = get_post_meta($post_id, '_wp_trash_meta_status', true);

    $post['post_status'] = $post_status;

    delete_post_meta($post_id, '_wp_trash_meta_status');
    delete_post_meta($post_id, '_wp_trash_meta_time');

    wp_insert_post($post);

    wp_untrash_post_comments($post_id);

    do_action('untrashed_post', $post_id);

    return $post;
}
    
respondido por el EAMann 04.05.2012 - 23:06
3

Cuando una publicación no está en funcionamiento, WordPress llama a wp_untrash_post . Eso llama a dos acciones: untrash_post antes de deshacer y untrashed_post después. Ambos pasan el ID de la publicación como un argumento.

    
respondido por el Stephen Harris 04.05.2012 - 23:00
-1

En algún lugar del edit.php hay un wp_untrash_post pero la página de documentación está vacía ( enlace ), quizás si Echa un vistazo a la fuente para poder encontrar una manera. enlace enlace

    
respondido por el user983248 04.05.2012 - 23:00

Lea otras preguntas en las etiquetas