Il n'y a pas de requête qui sera sûre à 100% de supprimer tout ce qui n'est pas utilisé et de ne pas supprimer ces choses car n'importe quel thème ou plugin peut ajouter des options au wp_options
tableau. Pourtant, avec un petit effort, vous pouvez avoir une assez bonne idée de ce qui n'est pas utilisé, puis décider manuellement lesquelles de ces choses supprimer et lesquelles ne pas le faire.
Vous pouvez mettre temporairement le code suivant dans le functions.php
fichier de votre thème, puis visiter chaque (type de) page de votre site public et, plus important encore, toutes les pages d'administration de la console d'administration. Une fois que vous avez fait cela, vous pouvez ouvrir votre wp_options
table et regarder le champ use_count
(ajouté par le code ci-dessous) pour voir quelles options ont un use_count
égal à zéro (le nombre d'utilisation n'a généralement pas de sens, sauf si tout ce qui est supérieur à 1 a été lu ou mis à jour) au moins une fois depuis que vous avez ajouté ce code.)
global $wpdb;
header('Content-Type:text/plain');
$results = $wpdb->get_results("SHOW COLUMNS FROM wp_options WHERE Field='use_count'");
if (count($results)==0) {
$wpdb->query("ALTER TABLE {$wpdb->options} ADD COLUMN use_count int UNSIGNED NOT NULL DEFAULT '0' AFTER autoload");
}
add_action('all','monitor_get_option_usage');
function monitor_get_option_usage($filter){
if (preg_match('#^option_(.*)$#',$filter)) {
increment_option_use_count(substr($filter,7));
}
}
add_action('updated_option','monitor_update_option_usage');
function monitor_update_option_usage($option){
increment_option_use_count($option);
}
function increment_option_use_count($option) {
global $wpdb;
$wpdb->query("UPDATE {$wpdb->options} SET use_count = use_count + 1 WHERE option_name = '$option'");
}
Avec cela, vous serez probablement en mesure d'identifier les options associées aux plugins disparus depuis longtemps, aux anciens thèmes et même aux options que vous avez ajoutées au début, mais que vous n'utilisez plus. Exportez-les tous vers une sauvegarde (au cas où), puis supprimez ceux que vous êtes prêt à supprimer. Une fois que vous avez terminé, vous pouvez supprimer le use_count
champ (si vous le souhaitez, cela ne fait pas de mal qu'il soit là) et également supprimer le code ci-dessus de votre functions.php
fichier.
Bien que ce ne soit toujours pas parfait, c'est beaucoup mieux que rien. J'espère que ça aide?
Le plugin Clean Options a bien fonctionné pour moi. La description de l'auteur du plugin semble correspondre à ce dont vous avez besoin: "Recherche les options orphelines et permet leur suppression de la table wp_options."
Je n'ai pas encore essayé WP-Optimize personnellement, mais celui-ci semble également prometteur. Et il dit qu'il prend en charge WP 2.7 (alors que Clean Options ne mentionne que la prise en charge définitive de WP 2.3), c'est bien!
la source
Cela ne supprimera pas nécessairement les problèmes avec,
wp_options
mais j'ai utilisé WP-Optimize pour résoudre de nombreux problèmes de dimensionnement de la base de données sur mes sites 3.0. Il supprime les révisions de publication inutiles, les commentaires de spam et peut automatiquement résoudre de nombreux problèmes. Sur mon blog principal, la base de données a été réduite de 30 Mo à un peu moins de 6 Mo et fonctionne maintenant beaucoup plus facilement.la source
J'exécute à la fois Clean Options et WP_Optimize sur mon site, et le combo fait un travail formidable pour garder la base de données en parfait état.
la source