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');
所以我希望我的自定义 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 但我收到此错误。
在您的另一个 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');