是否有一个RECOVER_POST挂钩可以与TRASH_POST挂钩一起使用?

时间:2012-05-04 作者:NightHawk

我正在使用trash_post 钩子在自定义表中设置一个标志,指示此项已“删除”,但当用户选择还原该帖子时,我可以使用什么钩子?我在此页上找不到任何内容https://codex.wordpress.org/Plugin_API/Action_Reference, 但也许有另一种方法可以解决这个问题。

谢谢

3 个回复
最合适的回答,由SO网友:EAMann 整理而成

查看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;
}

SO网友:Stephen Harris

当一篇帖子未被刷新时,WordPress会调用wp_untrash_post. 这需要两个动作:untrash_post 在未清洗之前,以及untrashed_post 之后两者都将post ID作为参数传递。

SO网友:user983248

在编辑的某个地方。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

结束

相关推荐

Custom Post Row Actions

我偶然发现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( $