2014-08-27 30 views
0

我想問一下,在註冊日期x天后是否有可能自動消除所有用戶的作者及其帖子。 例如,如果作者在註冊後寫了帖子,x天后,作者和帖子都會自動被永久刪除。在x天后自動刪除所有作者和他們的帖子

+0

cron工作如何?也許有更多優雅的選擇。 – 2014-08-27 19:19:56

+0

感謝您立即回覆,如果我表達不好,我很抱歉。 WP-Cron完美執行功能,但我想要的是從註冊日期起365天內消除「每位作者」。 示例: 作者註冊2014/01/01; 作者被自動刪除2015/01/01。 作者註冊01/06/2014; 作者被自動刪除01/06/2015。 作者註冊了03/01/2014; 作者被自動刪除03/01/2015。 等等 可能嗎? 非常感謝! – Claudio 2014-08-27 23:03:49

+0

Research [here](http://wordpress.stackexchange.com/questions/tagged/wp-cron)和[here](http://wordpress.stackexchange.com/search?q=delete+user+is%3Aquestion ) – brasofilo 2014-08-28 01:54:53

回答

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天的特定角色(例如作者)的註冊用戶?

或刪除除管理員和編輯器以外的所有用戶?

非常感謝!

+0

此外,我注意到,只刪除用戶,但不刪除帖子和關聯的用戶metà。 有什麼想法? – Claudio 2014-09-02 11:33:45

相關問題