2010-03-18 2 views
9

En utilisant une méthode similaire à celle described here, je peux voir le nombre total de requêtes effectuées dans Wordpress lorsque je charge une page.Comment afficher toutes les requêtes de base de données faites par Wordpress?

Maintenant, je voudrais afficher toutes les requêtes de base de données qui sont faites quand une page se charge. Cela me permettrait de voir qui sont mes plus gros porcs de ressources, sans avoir à passer par le processus d'élimination de tous mes plugins et scripts de thème.

Quel serait le meilleur moyen d'afficher toutes les requêtes de base de données faites par Wordpress?

Répondre

34

Si vous ajoutez define('SAVEQUERIES', true) à votre fichier de configuration, vous pouvez ensuite lister toutes les requêtes effectuées pour la page en cours en ajoutant ce qui suit à votre thème.

if (current_user_can('administrator')){ 
    global $wpdb; 
    echo "<pre>"; 
    print_r($wpdb->queries); 
    echo "</pre>"; 
} 

Voir la documentation pour plus de détails: http://codex.wordpress.org/Editing_wp-config.php#Save_queries_for_analysis

+0

Merci, cela a fait l'affaire. Maintenant, j'ai juste besoin de donner un sens aux requêtes. – mattz

+0

gentil, merci – Musa

+0

Juste une note que si vous utilisez Hyperdb, vous devez le faire dans le fichier db-config.php: $ wpdb-> save_queries = defined ('SAVEQUERIES') && SAVEQUERIES; –

5

ou vous pouvez accrocher dans posts_request. Vous pouvez mettre le coe dans functions.php tels que

add_filter('posts_request','debug_post_request'); // debugging sql query of a post 

function debug_post_request($sql_text) { 

    $GLOBALS['debugku'] = $sql_text; //intercept and store the sql<br/> 
    return $sql_text; 

} 

dans votre pied de page de thème, vous pouvez utiliser print_r comme

print_r($GLOBALS['debugku']); 
+0

Merci pour la suggestion. J'aime que cela ne nécessite pas d'éditer des fichiers de base, et je pense que cela a fonctionné, mais je ne suis pas sûr à 100%. C'était un peu difficile de déchiffrer ce qu'il produit. Les données semblaient être rares, mais je pense que cela aurait pu être sur une seule ligne et je ne pouvais tout simplement pas tout voir. Je suis allé avec la suggestion de Richard M ci-dessus et il a sorti tout cela dans une liste bien formulée. – mattz

+0

hei, comme la vieille sagesse dire: Il y a beaucoup de route à Rome; D – justjoe

Questions connexes