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

9 нояб. 2011 г., 06:51:31
Просмотры: 32.1K
Голосов: 12

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

$wpdb->get_results

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

$wpdb->queries

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

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

3
Комментарии

Хотите увидеть выполняемый SQL-запрос?

Rutwick Gangurde Rutwick Gangurde
9 нояб. 2011 г. 07:18:34

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

User User
9 нояб. 2011 г. 16:55:53

Лучший вариант - включить константу SAVEQUERIES в wp-config.php, а затем использовать глобальную переменную $wpdb->queries в нужном шаблоне.

maverick maverick
18 дек. 2021 г. 17:58:56
Все ответы на вопрос 9
1
15

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

define('SAVEQUERIES', true);

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

9 нояб. 2011 г. 13:55:06
Комментарии

Это идеальный способ... +1!

Rutwick Gangurde Rutwick Gangurde
16 нояб. 2011 г. 08:15:49
1

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

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-запрос и все остальные переменные запроса.

16 нояб. 2011 г. 07:50:16
Комментарии

Это интересно, но результат не соответствует моим ожиданиям: я хотел увидеть основной запрос для страницы. Вместо этого отобразился полный запрос WordPress, который, как я полагаю, на каком-то этапе преобразуется в MySQL-запрос в стандартном формате.

Nora McDougall-Collins Nora McDougall-Collins
24 мая 2020 г. 03:58:00
0

Я предпочитаю Debug Bar.

Скриншот Debug Bar, работающего на WordPress 3.2.1

9 нояб. 2011 г. 16:53:40
0

Debug Bar - это один из рекомендуемых (WordPress) плагинов для установки при разработке тем и плагинов. Я также использую debug-bar-extender: http://wordpress.org/extend/plugins/debug-bar-extender/

15 нояб. 2011 г. 19:59:02
0

Нет необходимости устанавливать какие-либо плагины, можно использовать это:

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

Источник: Кодекс

18 дек. 2013 г. 12:28:12
0

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

Для вашего случая подойдёт использование $wp_query->request.

9 нояб. 2011 г. 13:10:45
0

Вы также можете использовать плагин WPDB Profiling, который отображает все SQL-запросы, выполненные для генерации текущей страницы, в нижней части страницы.

9 нояб. 2011 г. 15:43:21
0

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

9 нояб. 2011 г. 16:29:03
0
<?php $wpdb->show_errors(); ?>  // использовать синтаксис непосредственно перед запросом
<?php $wpdb->print_error(); ?>  // использовать после выполнения запроса

Например:

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