我正在使用一个我构建的函数,在删除特定帖子后,删除用户的所有帖子。在我的例子中,我使用一个名为company的自定义Post类型。以及其他自定义帖子类型,如作业或事件。如果公司档案被删除,则该用户的所有其他帖子也将被删除。
我现在的问题是:如果我对普通帖子这样做,帖子就会被移到垃圾箱。这里一切正常。。。
但是,如果我对其他自定义帖子类型执行此操作,它们将被完全删除,没有垃圾。如果我在管理区域删除它们,我可能会将其丢弃。垃圾箱是活动的!?
有什么想法吗?出了什么问题?这是我的代码:
function delete_all_posts_from_author($post_id) {
global $post;
$id = $post->ID;
// Only trigger if post type is "company"
if ( get_post_type($id) == "company" ) {
$author_id = $post->post_author;
$posts_from_author = get_posts(
array(
\'posts_per_page\' => -1,
\'post_status\' => \'publish\',
\'post_type\' => array(\'event\',\'job\'),
\'author\' => $author_id,
\'fields\' => \'ids\', // Only get post ID\'s
)
);
foreach ( $posts_from_author as $post_from_author ) {
wp_delete_post( $post_from_author, false); // Set to False if you want to send them to Trash.
}
}
}
add_action( \'publish_to_trash\', \'delete_all_posts_from_author\', 10, 1 );