下面是一些代码,它提取所有订阅者ID,然后从这些订阅者中提取所有附件并尝试删除它们。如果无法删除它们,它将写入错误日志,让您知道。
$subscribers = get_users( array(
\'role\' => \'subscriber\',
\'fields\'=> \'ID\',
) );
if( ! empty( $subscribers ) ) {
$files = new WP_Query( array(
\'post_type\' => \'attachment\',
\'posts_per_page\' => 200,
\'author\' => implode( \',\', $subscribers ),
\'fields\' => \'ids\',
) );
if( ! empty( $files ) ) {
foreach( $files->posts as $attachment_id ) {
$deleted = wp_delete_attachment( $attachment_id, true );
if( ! $deleted ) {
error_log( "Attachment {$deleted} Could Not Be Deleted!" );
}
}
}
}
很有可能,您的附件数量会超过服务器在同一时间可以处理的加载量,因此您可能会多次达到200个限制,但一些页面刷新(或实际的偏移量/分页脚本)就可以做到这一点。