在某些条件下中止运行WordPress功能

时间:2014-09-13 01:28:35

标签: php wordpress

我试图弄清楚如何中止正在运行的WordPress功能。当用户删除自定义帖子类型(在我的情况下,商店)时,我想检查是否有与该商店相关的帖子。我正在运行查询并检查是否有返回的结果。如果我们返回一个或多个结果,我想中止删除并向用户显示一条错误消息,指出他们必须删除关联的帖子。我正在使用'before_delete_post'。这就是我要去的地方:

if (count($results)==0){
    //delete the data
} else {
    //abort the delete.
}

提前感谢您的帮助。

1 个答案:

答案 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