Come visualizzare la query in esecuzione attualmente in WordPress?

9 nov 2011, 06:51:31
Visualizzazioni: 32.1K
Voti: 12

Sto lavorando su WordPress che è nuovo per me. Mi è stato fornito un sito completamente progettato in WP. Il problema è che non riesco a trovare la query per ogni funzionalità/pagina. Ho trovato

$wpdb->get_results

usato per ottenere risultati dal database inoltre questo non funziona

$wpdb->queries

C'è un modo per stampare ogni query attualmente in esecuzione?

Per favore aiutatemi.

3
Commenti

Vuoi vedere la query SQL che viene eseguita?

Rutwick Gangurde Rutwick Gangurde
9 nov 2011 07:18:34

Non che voglia scoraggiarti dal conoscere i dettagli interni, ma questo suggerisce un'altra domanda la cui risposta sarebbe molto diversa. Quale problema stai cercando di risolvere?

User User
9 nov 2011 16:55:53

l'opzione migliore è abilitare la costante SAVEQUERIES in wp-config.php e poi utilizzare la variabile globale $wpdb->queries nel template di interesse.

maverick maverick
18 dic 2021 17:58:56
Tutte le risposte alla domanda 9
1
15

Per far funzionare $wpdb->queries devi configurare in wp-config.php:

define('SAVEQUERIES', true);

Questa opzione è altamente sconsigliata in produzione (pesante impatto sulle prestazioni) e quindi disattivata di default.

9 nov 2011 13:55:06
Commenti

Questo è il modo perfetto... +1!

Rutwick Gangurde Rutwick Gangurde
16 nov 2011 08:15:49
1

Spesso faccio così quando ho bisogno di verificare la query corrente:

add_action( 'wp_head', 'show_current_query' );

function show_current_query() {
    global $wp_query;

    if ( !isset( $_GET['q'] ) )
        return;
    echo '<textarea cols="50" rows="10">';
    print_r( $wp_query );
    echo '</textarea>';
}

Per visualizzare la query corrente, basta aggiungere ?q all'URL attuale.

Questo mostrerà la query corrente (memorizzata nella variabile globale $wp_query), inclusa la query SQL e tutte le altre variabili della query.

16 nov 2011 07:50:16
Commenti

È interessante, ma non mostra ciò che mi aspettavo: la query principale della pagina. Invece, mostra l'intera query di WordPress, che presumo venga convertita in una query MySQL nel formato standard ad un certo punto.

Nora McDougall-Collins Nora McDougall-Collins
24 mag 2020 03:58:00
0

Preferisco Debug Bar.

Schermata di Debug Bar in esecuzione su WordPress 3.2.1

9 nov 2011 16:53:40
0

Debug bar è uno dei plugin consigliati (da WordPress) da installare per lo sviluppo di temi e plugin. Utilizzo anche debug-bar-extender: http://wordpress.org/extend/plugins/debug-bar-extender/

15 nov 2011 19:59:02
0

Non è necessario installare alcun plugin, puoi utilizzare questo codice:

$queried_object = get_queried_object();
var_dump( $queried_object );

Fonte: Codex

18 dic 2013 12:28:12
0

La variabile globale $wp_query contiene tutte le informazioni relative alla query corrente, inclusi gli argomenti, i risultati, il contenuto dei risultati e la query stessa.

$wp_query->request dovrebbe essere ciò che fa al caso tuo in questa situazione.

9 nov 2011 13:10:45
0

Puoi anche utilizzare il plugin WPDB Profiling che mostrerà tutte le istruzioni SQL eseguite per generare la pagina corrente, nella parte inferiore della pagina.

9 nov 2011 15:43:21
0

Puoi utilizzare il plugin Wp Pear Debug. Mostrerà una lista delle query eseguite nella pagina, il numero di secondi impiegati per eseguire quelle query e la funzione PHP che ha avviato la query. Nota che devi salvare le impostazioni almeno una volta prima che inizi a funzionare.

9 nov 2011 16:29:03
0
<?php $wpdb->show_errors(); ?>  // usa questa sintassi appena prima della tua query
<?php $wpdb->print_error(); ?>  // usa questa dopo l'esecuzione della tua query

Esempio:

<?php $wpdb->show_errors();
      $id=$wpdb->update('nome_tabella',$array,$condizione);
      $wpdb->print_error();
?>
3 lug 2015 18:42:19