2010-03-18 136 views
9

使用類似於described here的方法,我可以看到在加載頁面時在Wordpress中進行的查詢的總數。如何顯示Wordpress所做的所有數據庫查詢?

現在我想顯示加載頁面時正在進行的所有數據庫查詢。這樣可以讓我看到我最大的資源是誰,而不必去除我所有的插件和主題腳本。

什麼是最好的方式來顯示由WordPress的所有數據庫查詢?

回答

34

如果您將define('SAVEQUERIES', true)添加到您的配置文件中,則可以通過將以下內容添加到您的主題中,列出爲當前頁面所做的所有查詢。

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

詳情請參見文檔:http://codex.wordpress.org/Editing_wp-config.php#Save_queries_for_analysis

+0

謝謝,這並獲得成功。現在我只需要理解這些查詢。 – mattz 2010-03-19 14:22:57

+0

不錯,謝謝 – Musa 2014-03-20 11:29:21

+0

請注意,如果你使用Hyperdb,你需要在db-config.php中執行:$ wpdb-> save_queries = defined('SAVEQUERIES')&& SAVEQUERIES; – 2014-04-13 01:11:25

5

,或者你可以掛接到posts_request。你可以把裏面COE的functions.php如

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; 

} 

在你的主題頁腳,你可以使用的print_r像

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

感謝您的建議。我喜歡這不需要編輯核心文件,我認爲它的工作,但我不是100%確定。破譯它輸出的內容有點困難。數據看起來好像很快,但我認爲它可能都在一條線上,我只是看不到這一切。我與Richard M的上述建議一起使用,並將其全部輸入到一個很好的格式列表中。 – mattz 2010-03-19 14:26:41

+0

嘿,像老智慧一樣說:有很多去羅馬的路; D – justjoe 2010-03-19 19:46:20

相關問題