Cum poți vedea interogările SQL care se execută în WordPress?

9 nov. 2011, 06:51:31
Vizualizări: 32.1K
Voturi: 12

Lucrez cu WordPress care este nou pentru mine. Mi s-a furnizat un site complet dezvoltat în WordPress, însă problema este că nu reușesc să găsesc interogările pentru fiecare funcționalitate/pagină. Am găsit

$wpdb->get_results

folosit pentru a obține rezultate din baza de date, dar nici aceasta nu funcționează

$wpdb->queries

Există vreo modalitate de a afișa fiecare interogare care se execută în momentul respectiv?

Vă rog să mă ajutați.

3
Comentarii

Dorești să vezi interogarea SQL care este executată?

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

Nu că aș descuraja cunoașterea internelor, dar asta sugerează o altă întrebare al cărei răspuns ar fi foarte diferit. Ce problemă încerci să rezolvi?

User User
9 nov. 2011 16:55:53

cea mai bună opțiune este să activezi constanta SAVEQUERIES în wp-config.php și apoi să folosești variabila globală $wpdb->queries în șablonul dorit.

maverick maverick
18 dec. 2021 17:58:56
Toate răspunsurile la întrebare 9
1
15

Pentru ca $wpdb->queries să funcționeze, trebuie să configurați în wp-config.php:

define('SAVEQUERIES', true);

Această funcționalitate nu este recomandată pentru mediul de producție (afectează semnificativ performanța) și este dezactivată implicit.

9 nov. 2011 13:55:06
Comentarii

Acesta este modul perfect... +1!

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

Adesea folosesc această metodă când am nevoie să verific interogarea curentă:

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>';
}

Pentru a afișa interogarea curentă, adăugați pur și simplu ?q în URL-ul curent.

Aceasta va afișa interogarea curentă (stocată în variabila globală $wp_query), inclusiv interogarea SQL și toate celelalte variabile de interogare.

16 nov. 2011 07:50:16
Comentarii

Acest lucru este interesant, dar nu a afișat ceea ce mă așteptam: interogarea principală pentru pagină. În schimb, a afișat întreaga interogare WordPress, pe care presupun că este convertită la un moment dat într-o interogare MySQL în formatul obișnuit.

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

Eu prefer Debug Bar.

Captură de ecran a Debug Bar rulând pe WordPress 3.2.1

9 nov. 2011 16:53:40
0

Debug bar este unul dintre plugin-uri recomandate (de WordPress) pentru instalare în dezvoltarea de teme și plugin-uri. De asemenea, folosesc debug-bar-extender: http://wordpress.org/extend/plugins/debug-bar-extender/

15 nov. 2011 19:59:02
0

Nu este nevoie să instalați niciun plugin, puteți folosi acest cod:

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

Sursa: Codex

18 dec. 2013 12:28:12
0

Variabila globală $wp_query conține totul despre interogarea curentă, inclusiv argumentele, rezultatele, conținutul rezultatelor și interogarea în sine.

$wp_query->request ar trebui să facă treaba pentru tine în acest caz.

9 nov. 2011 13:10:45
0

De asemenea, poți folosi plugin-ul WPDB Profiling care va afișa toate instrucțiunile SQL care au fost executate pentru a genera pagina pe care te afli, în partea de jos a paginii.

9 nov. 2011 15:43:21
0

Puteți utiliza plugin-ul Wp Pear Debug. Acesta vă va afișa o listă cu interogările executate în pagină, numărul de secunde necesare pentru executarea acestor interogări și funcția PHP care a inițiat interogarea. Vă rugăm să rețineți că trebuie să salvați setările cel puțin o dată înainte ca acesta să înceapă să funcționeze.

9 nov. 2011 16:29:03
0
<?php $wpdb->show_errors(); ?>  // folosește înainte de interogarea ta
<?php $wpdb->print_error(); ?>  // folosește după execuția interogării

Exemplu:

<?php $wpdb->show_errors();
      $id=$wpdb->update('nume_tabel',$array,$conditie);
      $wpdb->print_error();
?>
3 iul. 2015 18:42:19