我正在寻找可以从phpmyadmin运行的SQL代码,以删除博客上没有任何相关帖子的所有注册用户。
用于删除未连接任何帖子的作者的代码
3 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成
<?php
/**
* Plugin Name: Delete Non Authors
*/
function delete_non_authors()
{
global $wpdb;
$non_authors = $wpdb->get_col(
"SELECT DISTINCT $wpdb->users.ID FROM $wpdb->users
LEFT JOIN $wpdb->posts ON $wpdb->users.ID = $wpdb->posts.post_author
WHERE $wpdb->posts.ID IS NULL"
);
foreach ($non_authors as $user_ID)
wp_delete_user($user_ID);
}
register_activation_hook(__FILE__, \'delete_non_authors\');
?>
将其放入文件中,命名如下delete-non-authors.php
, 上传到你的插件文件夹,激活,你就完成了!(然后可以取消激活)。SO网友:kureikain
我们的想法是,我们将获得所有有一些帖子的作者,并删除不在该列表中的用户!如果只使用SQL,请在PHPMYADMIN上运行以下命令:
DELETE FROM wp_users WHERE ID NOT IN (SELECT DISTINCT post_author FROM wp_posts)
如果要在代码中执行此操作,请使用:global $wpdb;
$wpdb->query("DELETE FROM {$wpdb->users} WHERE ID NOT IN (SELECT DISTINCT post_author FROM {$wpdb->posts})
")
SO网友:danhgilmore
我没有现成的代码访问权限,所以我不想太具体,引用错误的函数,但最好通过PHP和MySQL来完成,而不仅仅是从wp\\U users表中删除记录。如果您通过PHP并使用WordPress的内置函数进行操作,它将干净地完成操作并删除用户,而不会在wp\\u usermeta表中留下孤立的数据,等等。
结束