我正在使用trash_post
钩子在自定义表中设置一个标志,指示此项已“删除”,但当用户选择还原该帖子时,我可以使用什么钩子?我在此页上找不到任何内容https://codex.wordpress.org/Plugin_API/Action_Reference, 但也许有另一种方法可以解决这个问题。
谢谢
我正在使用trash_post
钩子在自定义表中设置一个标志,指示此项已“删除”,但当用户选择还原该帖子时,我可以使用什么钩子?我在此页上找不到任何内容https://codex.wordpress.org/Plugin_API/Action_Reference, 但也许有另一种方法可以解决这个问题。
谢谢
查看WP 3.3.2的代码,似乎trash_post
实际上是wp_trash_post
. 从wp_trash_post()
中的函数/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);
所以。。。我会仔细检查你用来设置初始标志的挂钩。但是,有一个钩子可以用来检测用户何时恢复帖子。它的名字很贴切untrash_post
.
在这里,它是从同一个核心文件执行的:
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;
}
当一篇帖子未被刷新时,WordPress会调用wp_untrash_post
. 这需要两个动作:untrash_post
在未清洗之前,以及untrashed_post
之后两者都将post ID作为参数传递。
在编辑的某个地方。php是wp_untrash_post
但文档页为空(http://codex.wordpress.org/Function_Reference/wp_untrash_post), 也许如果你看看来源你就能找到一个方法http://wpseek.com/wp_untrash_post/http://phpxref.ftwr.co.uk/wordpress/nav.html?wp-admin/edit.php.source.html
我偶然发现this question 在写这个问题的时候。我有一个问题是关于这个问题的。我发现你用的是get_delete_post_link 筛选为我的操作创建一个新的url(或一个类似的函数——在任何情况下,我都会将该函数与布尔值一起使用)。唯一的问题是,I don\'t know how to capture the event now. 考虑到我在谷歌上找不到很多关于行后操作的例子,我将不胜感激-/public function _wp_filter_get_delete_post_link( $