我试图弄清楚如何中止正在运行的WordPress功能。当用户删除自定义帖子类型(在我的情况下,商店)时,我想检查是否有与该商店相关的帖子。我正在运行查询并检查是否有返回的结果。如果我们返回一个或多个结果,我想中止删除并向用户显示一条错误消息,指出他们必须删除关联的帖子。我正在使用'before_delete_post'。这就是我要去的地方:
if (count($results)==0){
//delete the data
} else {
//abort the delete.
}
提前感谢您的帮助。
答案 0 :(得分:2)
如果您使用的是before_delete_post,您可以使用以下内容:
function prevent_delete_custom_post() {
if (count($results)==0){
//delete the data
} else {
wp_redirect(admin_url('edit.php')); //here you can try to get the variables that you have in the url to redirect the user to the same place.
exit();
}
}
add_action('before_delete_post', 'prevent_delete_custom_post', 1);
请记住,在删除帖子元数据之前会触发'before_delete_post'操作。 http://codex.wordpress.org/Plugin_API/Action_Reference/before_delete_post
在从数据库中删除帖子(或页面)之前和之后触发'delete_post'操作。 http://codex.wordpress.org/Plugin_API/Action_Reference/delete_post