¿Cuál es la forma de ver la consulta que se está ejecutando actualmente en WordPress?

9 nov 2011, 06:51:31
Vistas: 32.1K
Votos: 12

Estoy trabajando en WordPress, que es nuevo para mí. Me han proporcionado un sitio completamente diseñado en WP, pero el problema es que no puedo encontrar la consulta para cada funcionalidad/página. He encontrado

$wpdb->get_results

usado para obtener resultados de la base de datos también esto no está funcionando

$wpdb->queries

¿Hay alguna manera de imprimir cada consulta que se está ejecutando actualmente?

Por favor ayuda.

3
Comentarios

¿Quieres ver la consulta SQL que se está ejecutando?

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

No es que quiera desanimarte a conocer los entresijos, pero esto apunta a otra pregunta cuya respuesta sería muy diferente. ¿Qué problema estás intentando resolver?

User User
9 nov 2011 16:55:53

La mejor opción es habilitar la constante SAVEQUERIES en wp-config.php y luego usar la variable global $wpdb->queries en la plantilla de interés.

maverick maverick
18 dic 2021 17:58:56
Todas las respuestas a la pregunta 9
1
15

Para que $wpdb->queries funcione, debes configurar en wp-config.php:

define('SAVEQUERIES', true);

No se recomienda su uso en producción (afecta significativamente el rendimiento) y por eso está desactivado por defecto.

9 nov 2011 13:55:06
Comentarios

¡Esta es la forma perfecta... +1!

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

A menudo hago esto cuando necesito verificar la consulta actual:

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

Para mostrar la consulta actual, solo agrega ?q en la URL actual.

Esto mostrará la consulta actual (almacenada en la variable global $wp_query), incluyendo la consulta SQL y todas las demás variables de consulta.

16 nov 2011 07:50:16
Comentarios

Esto es interesante, pero no mostró lo que esperaba: la consulta principal de la página. En cambio, mostró toda la consulta de WordPress, que supongo que se convierte en una consulta MySQL en el formato regular en algún momento.

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

Prefiero Debug Bar.

Captura de pantalla de Debug Bar ejecutándose en WordPress 3.2.1

9 nov 2011 16:53:40
0

Debug bar es uno de los plugins recomendados (por WordPress) para instalar en el desarrollo de temas y plugins. Yo también uso debug-bar-extender: http://wordpress.org/extend/plugins/debug-bar-extender/

15 nov 2011 19:59:02
0

No es necesario instalar ningún plugin, puedes usar esto:

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

Fuente: Codex

18 dic 2013 12:28:12
0

La variable global $wp_query contiene todo sobre la consulta actual, incluyendo los argumentos, resultados, contenido de los resultados y la consulta en sí misma.

$wp_query->request debería ser lo que necesitas en este caso.

9 nov 2011 13:10:45
0

También puedes usar el plugin WPDB Profiling que mostrará todas las sentencias SQL que se ejecutaron para generar la página en la que te encuentras, al final de la página.

9 nov 2011 15:43:21
0

Puedes utilizar el plugin Wp Pear Debug. Te mostrará una lista de las consultas ejecutadas en la página, el número de segundos que tardaron en ejecutarse dichas consultas y la función PHP que inició la consulta. Ten en cuenta que debes guardar la configuración al menos una vez antes de que comience a funcionar.

9 nov 2011 16:29:03
0
<?php $wpdb->show_errors(); ?>  // usar esta sintaxis justo antes de tu consulta
<?php $wpdb->print_error(); ?>  // usar después de ejecutar tu consulta

Ejemplo:

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