PluginProbe ʕ •ᴥ•ʔ
Advanced Database Cleaner – Optimize & Clean Database to Speed Up Site Performance / 1.2.2
Advanced Database Cleaner – Optimize & Clean Database to Speed Up Site Performance v1.2.2
trunk 1.0.0 1.1.0 1.1.1 1.2.0 1.2.1 1.2.2 1.2.3 1.3.0 1.3.1 1.3.5 1.3.6 1.3.7 2.0.0 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.1.0 4.1.1
advanced-database-cleaner / includes / functions.php
advanced-database-cleaner / includes Last commit date
clean-db.php 10 years ago functions.php 10 years ago optimize-db.php 10 years ago reset-db.php 10 years ago sidebar.php 10 years ago
functions.php
153 lines
1 <?php
2
3 function adv_db_cleaner($type){
4 global $wpdb;
5 switch($type){
6 case "revision":
7 $adbc_sql = "DELETE FROM $wpdb->posts WHERE post_type = 'revision'";
8 $wpdb->query($adbc_sql);
9 break;
10 case "draft":
11 $adbc_sql = "DELETE FROM $wpdb->posts WHERE post_status = 'draft'";
12 $wpdb->query($adbc_sql);
13 break;
14 case "autodraft":
15 $adbc_sql = "DELETE FROM $wpdb->posts WHERE post_status = 'auto-draft'";
16 $wpdb->query($adbc_sql);
17 break;
18 case "moderated":
19 $adbc_sql = "DELETE FROM $wpdb->comments WHERE comment_approved = '0'";
20 $wpdb->query($adbc_sql);
21 break;
22 case "spam":
23 $adbc_sql = "DELETE FROM $wpdb->comments WHERE comment_approved = 'spam'";
24 $wpdb->query($adbc_sql);
25 break;
26 case "trash":
27 $adbc_sql = "DELETE FROM $wpdb->comments WHERE comment_approved = 'trash'";
28 $wpdb->query($adbc_sql);
29 break;
30 case "postmeta":
31 $adbc_sql = "DELETE pm FROM $wpdb->postmeta pm LEFT JOIN $wpdb->posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL";
32 //$adbc_sql = "DELETE FROM $wpdb->postmeta WHERE NOT EXISTS ( SELECT * FROM $wpdb->posts WHERE $wpdb->postmeta.post_id = $wpdb->posts.ID )";
33 $wpdb->query($adbc_sql);
34 break;
35 case "commentmeta":
36 $adbc_sql = "DELETE FROM $wpdb->commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM $wpdb->comments)";
37 $wpdb->query($adbc_sql);
38 break;
39 case "relationships":
40 $adbc_sql = "DELETE FROM $wpdb->term_relationships WHERE term_taxonomy_id=1 AND object_id NOT IN (SELECT id FROM $wpdb->posts)";
41 $wpdb->query($adbc_sql);
42 break;
43 case "feed":
44 $adbc_sql = "DELETE FROM $wpdb->options WHERE option_name LIKE '_site_transient_browser_%' OR option_name LIKE '_site_transient_timeout_browser_%' OR option_name LIKE '_transient_feed_%' OR option_name LIKE '_transient_timeout_feed_%'";
45 $wpdb->query($adbc_sql);
46 break;
47 }
48 }
49
50 function adv_db_cleaner_count(){
51 global $wpdb;
52 $aDBc_count_total_unused = 0;
53
54 $adbc_sql = "SELECT COUNT(*) FROM $wpdb->posts WHERE post_type = 'revision'";
55 $aDBc_count_unused["revision"] = $wpdb->get_var($adbc_sql);
56 $aDBc_count_total_unused += $aDBc_count_unused["revision"];
57
58 $adbc_sql = "SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'draft'";
59 $aDBc_count_unused["draft"] = $wpdb->get_var($adbc_sql);
60 $aDBc_count_total_unused += $aDBc_count_unused["draft"];
61
62 $adbc_sql = "SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'auto-draft'";
63 $aDBc_count_unused["autodraft"] = $wpdb->get_var($adbc_sql);
64 $aDBc_count_total_unused += $aDBc_count_unused["autodraft"];
65
66 $adbc_sql = "SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '0'";
67 $aDBc_count_unused["moderated"] = $wpdb->get_var($adbc_sql);
68 $aDBc_count_total_unused += $aDBc_count_unused["moderated"];
69
70 $adbc_sql = "SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = 'spam'";
71 $aDBc_count_unused["spam"] = $wpdb->get_var($adbc_sql);
72 $aDBc_count_total_unused += $aDBc_count_unused["spam"];
73
74 $adbc_sql = "SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = 'trash'";
75 $aDBc_count_unused["trash"] = $wpdb->get_var($adbc_sql);
76 $aDBc_count_total_unused += $aDBc_count_unused["trash"];
77
78 $adbc_sql = "SELECT COUNT(*) FROM $wpdb->postmeta pm LEFT JOIN $wpdb->posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL";
79 //$adbc_sql = "SELECT COUNT(*) FROM $wpdb->postmeta WHERE NOT EXISTS ( SELECT * FROM $wpdb->posts WHERE $wpdb->postmeta.post_id = $wpdb->posts.ID )";
80 $aDBc_count_unused["postmeta"] = $wpdb->get_var($adbc_sql);
81 $aDBc_count_total_unused += $aDBc_count_unused["postmeta"];
82
83 $adbc_sql = "SELECT COUNT(*) FROM $wpdb->commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM $wpdb->comments)";
84 $aDBc_count_unused["commentmeta"] = $wpdb->get_var($adbc_sql);
85 $aDBc_count_total_unused += $aDBc_count_unused["commentmeta"];
86
87 $adbc_sql = "SELECT COUNT(*) FROM $wpdb->term_relationships WHERE term_taxonomy_id=1 AND object_id NOT IN (SELECT id FROM $wpdb->posts)";
88 $aDBc_count_unused["relationships"] = $wpdb->get_var($adbc_sql);
89 $aDBc_count_total_unused += $aDBc_count_unused["relationships"];
90
91 $adbc_sql = "SELECT COUNT(*) FROM $wpdb->options WHERE option_name LIKE '_site_transient_browser_%' OR option_name LIKE '_site_transient_timeout_browser_%' OR option_name LIKE '_transient_feed_%' OR option_name LIKE '_transient_timeout_feed_%'";
92 $aDBc_count_unused["feed"] = $wpdb->get_var($adbc_sql);
93 $aDBc_count_total_unused += $aDBc_count_unused["feed"];
94
95 $aDBc_count_unused["total"] = $aDBc_count_total_unused;
96 return $aDBc_count_unused;
97 }
98
99 function adv_db_cleaner_optimize(){
100 global $wpdb;
101 $adbc_sql = 'SHOW TABLE STATUS FROM `'.DB_NAME.'`';
102 $result = $wpdb->get_results($adbc_sql);
103 foreach($result as $row){
104 $adbc_sql = 'OPTIMIZE TABLE '.$row->Name;
105 $wpdb->query($adbc_sql);
106 }
107 }
108
109 function adv_db_cleaner_reset(){
110 require_once( ABSPATH . '/wp-admin/includes/upgrade.php' );
111 global $current_user, $wpdb;
112 $blogname = get_option( 'blogname' );
113 $admin_email = get_option( 'admin_email' );
114 $blog_public = get_option( 'blog_public' );
115 if ( $current_user->user_login != 'admin' ){
116 $user = get_user_by( 'login', 'admin' );
117 }
118 if ( empty( $user->user_level ) || $user->user_level < 10 ){
119 $user = $current_user;
120 }
121 $prefix = str_replace( '_', '\_', $wpdb->prefix );
122 $tables = $wpdb->get_col( "SHOW TABLES LIKE '{$prefix}%'" );
123 foreach ( $tables as $table ) {
124 $wpdb->query( "DROP TABLE $table" );
125 }
126 // Install wordpress
127 $result = wp_install( $blogname, $user->user_login, $user->user_email, $blog_public);
128 extract( $result, EXTR_SKIP );
129 // Set user password
130 $query = $wpdb->prepare( "UPDATE $wpdb->users SET user_pass = %s, user_activation_key = '' WHERE ID = %d", $user->user_pass, $user_id );
131 $wpdb->query( $query );
132 // Test for functions
133 $get_user_meta = function_exists( 'get_user_meta' ) ? 'get_user_meta' : 'get_usermeta';
134 $update_user_meta = function_exists( 'update_user_meta' ) ? 'update_user_meta' : 'update_usermeta';
135 // Say to wordpress that we will not use generated password
136 if ( $get_user_meta( $user_id, 'default_password_nag' ) ){
137 $update_user_meta( $user_id, 'default_password_nag', false );
138 }
139 if ( $get_user_meta( $user_id, $wpdb->prefix . 'default_password_nag' ) ){
140 $update_user_meta( $user_id, $wpdb->prefix . 'default_password_nag', false );
141 }
142 // Reactivate the plugin (TODO)
143 //activate_plugin( 'plugins/advanced-db-cleaner/advanced-db-cleaner.php' );
144 // Clear all cookies associated with authentication
145 wp_clear_auth_cookie();
146 // Set the authentication cookies based User ID
147 wp_set_auth_cookie( $user_id );
148 // Redirect user to admin pannel
149 wp_redirect( admin_url());
150 }
151
152
153 ?>