web-dev-qa-db-fra.com

Existe-t-il un crochet recover_post avec le crochet trash_post?

J'utilise le hook trash_post pour définir un indicateur dans un tableau personnalisé pour indiquer que cet élément est "supprimé", mais lorsque l'utilisateur choisit de restaurer cette publication, quel hook puis-je utiliser pour cela? Je n'ai rien trouvé sur cette page https://codex.wordpress.org/Plugin_API/Action_Reference , mais il existe peut-être un autre moyen de résoudre le problème. .

Merci!

2
NightHawk

En regardant le code pour WP 3.3.2, il semble que trash_post est en réalité wp_trash_post. De la fonction wp_trash_post() dans /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);

Donc ... je vérifierais le crochet que vous utilisez pour définir votre drapeau initial.

Cependant, estun crochet que vous pouvez utiliser pour détecter le moment où un utilisateur restaure une publication. Il porte bien son nom untrash_post.

Ici, il est en action depuis le même fichier core:

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;
}
4
EAMann

Lorsqu'une publication n'est pas supprimée, WordPress appelle wp_untrash_post . Cela appelle deux actions: untrash_post avant de supprimer et untrashed_post après. Les deux transmettent l'ID de poste en argument.

3
Stephen Harris