Wordpress - 删除帖子时的操作(多一个)

时间:2012-05-07 12:15:33

标签: wordpress delete-row

我在“delete_post”动作上触发功能时遇到问题。 我正在构建功能,我必须在数据库中添加一个表(我不能使用wp_postmeta这个)。 因此我创建了一个自定义表,其中包含与帖子相关的其他数据。 我想,当管理员从管理面板删除帖子时,删除我的自定义表格中该帖子的数据(我不希望在帖子消失后留下冗余数据)

我实施了这样的事情:

add_action('admin_init', 'codex_init');
function codex_init() {
   if (current_user_can('delete_posts')) add_action('delete_post', 'delete_something');
}

function delete_something($postid) {
   //here im deleting everything from that table with that post id for that post type
}

如果有人点击只删除一个帖子,这就完美了。但是当我想一次删除更多帖子时(检查wordpress管理菜单上的按钮并选择删除选项 - 批量删除),这不起作用? 我在这里做错了什么,或者当有人想要一次删除多个帖子时有不同的行动吗?


修改

如下面的评论中所示,此操作也适用于批量和单个删除操作。我的问题与全局$ post变量的使用有关 - 获取单个帖子的id - 而是我应该使用直接提供给函数的参数。

1 个答案:

答案 0 :(得分:2)

我查看了wp-admin/edit.php中的代码,它确实触发了有您行动的wp_delete_post函数。
试试这个。是die并点击var_dump

add_action('admin_init', 'codex_init');
function codex_init() {
   if (current_user_can('delete_posts')) add_action('delete_post', 'delete_something');
}

function delete_something($postid) {
     var_dump('trigger'.$postid);die();
     //here im deleting everything from that table with that post id for that post type
}