2010-03-18 3 views
9

Utilizzando un metodo simile a quello described here, è possibile visualizzare il numero totale di query eseguite in Wordpress quando carico una pagina.Come visualizzare tutte le query del database eseguite da Wordpress?

Ora mi piacerebbe visualizzare tutte le query del database che vengono fatte quando si carica una pagina. Questo mi permetterebbe di vedere chi sono i miei più grandi maiali delle risorse, senza dover passare attraverso il processo di eliminazione di tutti i miei plugin e script di temi.

Quale sarebbe il modo migliore per visualizzare tutte le query di database eseguite da Wordpress?

risposta

34

Se si aggiunge define('SAVEQUERIES', true) al file di configurazione, è possibile elencare tutte le query effettuate per la pagina corrente aggiungendo quanto segue al tema.

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

vedere la documentazione per maggiori dettagli: http://codex.wordpress.org/Editing_wp-config.php#Save_queries_for_analysis

+0

Grazie, questo ha fatto il trucco. Ora ho solo bisogno di dare un senso alle domande. – mattz

+0

nice one, thanks – Musa

+0

Solo una nota che se usi Hyperdb, devi farlo nel db-config.php: $ wpdb-> save_queries = defined ('SAVEQUERIES') && SAVEQUERIES; –

5

oppure è possibile collegare in posts_request. È possibile inserire il coe all'interno functions.php come

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; 

} 

nel piè di pagina tema, è possibile utilizzare come print_r

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

Grazie per il suggerimento. Mi piace il fatto che questo non abbia richiesto la modifica dei file core, e penso che abbia funzionato, ma non ne sono sicuro al 100%. È stato un po 'difficile decifrare ciò che ha prodotto. I dati sembravano essere mediocri, ma penso che potrebbe essere stato tutto su una riga e io non riuscivo a vedere tutto. Sono andato con il suggerimento di Richard M sopra e ha prodotto tutto in una lista ben formata. – mattz

+0

hei, come la vecchia saggezza che dice: C'è molta strada per Roma; D – justjoe