我想询问是否有可能在注册之日起x天后自动删除所有用户作者及其帖子。 例如,如果作者在注册后写了帖子,则在x天后,作者和帖子都将被自动删除。
答案 0 :(得分:0)
我找到了解决方案。正如本文Auto delete Wordpress users according to time since registering?中所解释的那样, 通过插入以下代码,您可以删除超过30天的注册用户。
if(!wp_next_scheduled('my_dailyClearOut')){
wp_schedule_event(time(), 'daily', 'my_dailyClearOut'); }
function my_clearOldUsers() {
global $wpdb;
$query = $wpdb->prepare("SELECT ID FROM $wpdb->users WHERE datediff(now(), user_registered) > 30");
if ($oldUsers = $wpdb->get_results($query, ARRAY_N)) {
foreach ($oldUsers as $user_id) {
wp_delete_user($user_id[0]);
}
}
}
add_action('my_dailyClearOut', 'my_clearOldUsers');
不幸的是没有使用" SELECT ID FROM"但适用于" DELETE FROM"
工作:
if(!wp_next_scheduled('my_dailyClearOut')) {
wp_schedule_event(time(), 'daily', 'my_dailyClearOut'); }
function my_clearOldUsers() {
global $wpdb;
$query = $wpdb->prepare("DELETE FROM $wpdb->users WHERE datediff(now(), user_registered) > 30");
if ($oldUsers = $wpdb->get_results($query, ARRAY_N)) {
foreach ($oldUsers as $user_id) {
wp_delete_user($user_id[0]);
}
}
}
add_action('my_dailyClearOut', 'my_clearOldUsers');
现在问题是它也消除了管理员。
是否有办法从特定角色(例如作者)中删除超过30天的注册用户?
或删除除管理员和编辑器以外的所有用户?
非常感谢!