Как увидеть текущий выполняющийся запрос в WordPress?


12

Я работаю над WordPress, который является новым для меня. Теперь мне предоставили сайт, полностью разработанный в wp. Но проблема в том, что я не могу найти запрос по каждой функциональности / странице, которые я нашел

$wpdb->get_results

используется для получения результата из базы данных, также это не работает

$wpdb->queries

Есть ли способ напечатать каждый выполняемый в данный момент запрос?

Пожалуйста помоги.


Вы хотите увидеть, как выполняется SQL-запрос?
Рутвик Гангурде

Не то чтобы я не рекомендовал бы знакомиться с внутренностями, но это намекает на другой вопрос, ответ на который будет совсем другим. Какую проблему ты пытаешься решить?
Анника Бэкстрем

Ответы:



10

Для $wpdb->queriesработы необходимо настроить в wp-config.php:

define('SAVEQUERIES', true);

Это настоятельно не рекомендуется для производства (значительное снижение производительности) и поэтому отключено по умолчанию.


Это идеальный способ ... +1!
Рутвик Гангурде

6

Я часто делаю это, когда мне нужно проверить текущий запрос:

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

Чтобы показать текущий запрос, просто добавьте ?qв текущий URL.

Это покажет текущий запрос (хранящийся в глобальной переменной $ wp_query), включая запрос SQL и все другие переменные запроса.



0

Глобал $wp_queryсодержит все о текущем запросе, включая аргументы, результаты, содержимое результатов и сам запрос.

$wp_query->request должен сделать работу за вас здесь.



0

Вы можете использовать плагин Wp Pear Debug . Он покажет вам список запросов, выполненных на странице, количество секунд, затраченных на выполнение этих запросов, и функцию php, которая инициировала запрос. Обратите внимание, что вы должны сохранить настройки хотя бы один раз, прежде чем они начнут работать.



0
<?php $wpdb->show_errors(); ?>  // use syntax just before your query 
<?php $wpdb->print_error(); ?>  // user after your query execution

То есть.

<?php $wpdb->show_errors();
      $id=$wpdb->update('table_name',$array,$condition);
      $wpdb->print_error();
?>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.