Wordpress:自定义 post 类型永久删除 post

Wordpress: custom post type delete post permanently

所以我希望我的自定义 post 类型中的 post 永久删除,而不是先移至垃圾箱。 所以我在网上找到了这个应该可以解决问题的代码。 但是我无法让它以某种方式工作。

我的代码如下

function directory_skip_trash($post_id) {
    if (get_post_type($post_id) == 'directory') {
        // Force delete
        wp_delete_post( $post_id, true );
    }
}
add_action('wp_trash_post', 'directory_skip_trash');

我的自定义 post 类型的其余代码你可以在我之前制作的 中找到。

我可能漏掉了一些非常简单的东西。

更新

所以现在它可以正常工作了。 它确实删除了 post 但我收到此错误。 错误后,如果我 return 到 post 页面, post 就消失了,不在垃圾箱中 任何人都可以解决它只是删除而不是给出此消息吗?

在您的另一个 post 中,它说您的 post 类型称为 'members'。 您正在检查 'directory' 类型 posts。像这样更改 if 条件以实际影响正确的 post 类型:

function members_skip_trash($post_id) {
    if (get_post_type($post_id) == 'members') { // <-- members type posts
        // Force delete
        remove_all_actions('wp_trash_post');
        wp_delete_post( $post_id, true );
    }
}
add_action('trashed_post', 'members_skip_trash', 1);

使用正确的members post类型:

您需要使用 trashed_post 钩子。 wp_trash_post 发生在 post 被丢弃之前,因此您收到错误消息,因为 post 不再存在。

function members_skip_trash($post_id) {
    if (get_post_type($post_id) == 'members') { // <-- members type posts
        // Force delete
        wp_delete_post( $post_id, true );
    }
}
add_action('trashed_post', 'members_skip_trash');