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!
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;
}
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.