Query Monitor

Описание

Query Monitor — это панель инструментов разработчика для WordPress и WooCommerce. Она позволяет отлаживать запросы к базе данных, ошибки PHP, хуки и действия, блоки редактора блоков, зависшие скрипты и таблицы стилей, вызовы HTTP API и многое другое.

Он включает некоторые расширенные возможности, такие как отладка вызовов Ajax, вызовов REST API, проверка возможностей пользователя, а также полная поддержка блочных тем и полное редактирование сайта. В нем есть возможность уменьшить большую часть результатов по плагинам или темам, что позволяет быстро определить плохо работающие плагины, тему или функции.

Query Monitor уделяет большое внимание представлению информации в полезной форме, например, показывая совокупные запросы к базе данных, сгруппированные по плагинам, темам или функциям, которые за них отвечают. Он добавляет меню панели инструментов администратора, показывающее обзор текущей страницы, с полной отладочной информацией, отображаемой в панелях после выбора пункта меню.

Query Monitor поддерживает версии WordPress давности до трех лет и PHP версии 7.4 или выше.

Для дополнительной информации посетите сайт Query Monitor.

Вот обзор того, что показано для каждой загрузки страницы:

  • Запросы к базе данных, включая уведомления о медленных, дублирующих или ошибочных запросах. Позволяет фильтровать запросы по типу (SELECT, UPDATE, DELETE и т.д.), ответственному компоненту (плагин, тема, ядро WordPress) и вызывающей функции, а также предоставляет отдельные агрегированные представления для каждого из них.
  • Название файла шаблона, полная иерархия шаблонов и названия всех частей шаблона, которые были загружены или не загружались (для блочных тем и классических тем).
  • Ошибки PHP наглядно представлены вместе с соответствующими компонентами и стеком вызовов, а также визуальным предупреждением на панели инструментов администратора.
  • Использование «неверных» или «устаревших» функций в коде вашего сайта.
  • Блоки и связанные с ними свойства в содержимом записи и в рамках полного редактирования сайта (FSE).
  • Совпавшие правила перезаписи, связанные с ними строки и параметры запроса.
  • Зарегистрированные скрипты и таблицы стилей вместе с их зависимостями и предупреждениями о нарушенных зависимостях.
  • Языковые настройки и загруженные файлы перевода (файлы MO и файлы JSON) для каждого текстового домена.
  • Запросы HTTP API с указанием кода ответа, ответственного компонента и затраченного времени, с предупреждениями о неудачных или ошибочных запросах.
  • Проверки возможностей пользователя, а также результат и любые параметры, переданные для проверки возможностей.
  • Информация об окружении, включая подробную информацию о PHP, базе данных, WordPress и веб-сервере.
  • Значения всех условных функций WordPress, таких как is_single(), is_home() и т.д.
  • Транзиенты, которые были обновлены.
  • Использование switch_to_blog() и restore_current_blog() в мультисайт установках.

Кроме того:

  • Каждый раз, когда происходит перенаправление, Query Monitor добавляет HTTP-заголовок, содержащий стек вызовов, поэтому вы можете использовать ваш любимый HTTP-инспектор или инструменты разработчика браузера для отслеживания того, что вызвало перенаправление.
  • Ответ на любой Ajax-запрос страницы, инициированный jQuery, будет содержать в своих заголовках различную отладочную информацию. Ошибки PHP также выводятся в консоль разработчика браузера.
  • Ответ на аутентифицированный запрос WordPress REST API будет содержать обзор информации о производительности и ошибках PHP в заголовках, если у аутентифицированного пользователя есть разрешение на просмотр выходных данных монитора запросов. Запрос REST API в оболочке будет содержать ещё больше отладочной информации в свойстве qm ответа.

По умолчанию вывод Query Monitor показывается только администраторам на обычный сайтах и супер-администраторам на мультисайтах.

Кроме того, вы можете установить аутентификационный cookie, который позволит вам просматривать результаты Query Monitor, когда вы не авторизованы (или если вы авторизованы как не администратор). Подробности смотрите на панели Настройки.

Другие плагины

Я поддерживаю несколько других плагинов для разработчиков. Ознакомьтесь с ними:

  • User Switching обеспечивает мгновенное переключение между учётными записями пользователей в WordPress.
  • WP Crontrol позволяет вам просматривать и управлять тем, что происходит в системе WP-Cron

Благодарность

Время, которое я трачу на поддержку этого и других плагинов, частично спонсируется:

Положение о конфиденциальности

Query Monitor по умолчанию является закрытым и всегда будет закрытым. Он не хранит постоянно какие-либо данные, которые собирает. Он не отправляет данные третьим лицам и не использует сторонние ресурсы. С полным заявлением о конфиденциальности Query Monitor можно ознакомиться здесь.

Положение о доступности

Query Monitor стремится к полному доступу для всех своих пользователей. С полным описанием специальных возможностей Query Monitor можно ознакомиться здесь.

Скриншоты

  • Меню панели администратора
  • Агрегированные запросы к базе данных по компонентам
  • Запросы к базе данных
  • Временная шкала
  • Хуки и События
  • Запросы HTTP API
  • Журналы

Часто задаваемые вопросы

Работает ли плагин с PHP 8?

Да, он активно тестируется и работает вплоть до PHP 8.5.

Кто может видеть выходные данные Query Monitor?

По умолчанию вывод Query Monitor показывается только администраторам на обычный сайтах и супер-администраторам на мультисайтах.

Кроме того, вы можете установить аутентификационный cookie, который позволит вам просматривать результаты Query Monitor, когда вы не авторизованы, или когда вы вошли в систему как пользователь, который не может просматривать результаты Query Monitor. Подробности смотрите на панели Настройки.

Влияет ли Query Monitor на время генерации страниц или использование памяти?

Короткий ответ: Да, но совсем немного.

Длинный ответ: Query Monitor оказывает небольшое влияние на время генерации страницы, потому что он подключается к нескольким местам в WordPress так же, как и другие плагины. Это влияние незначительно.

На страницах, содержащих особенно большое количество запросов к базе данных (сотни), Query Monitor в настоящее время использует больше памяти, чем мне бы хотелось. Это связано с объемом данных, которые фиксируются в трассировке стека для каждого запроса. Я работал и буду работать над тем, чтобы постоянно снижать этот показатель.

Могу ли я запретить монитору запросов собирать данные во время длительных запросов?

Да, вы можете вызвать do_action( 'qm/cease' ), чтобы дать команду монитору запросов прекратить работу на оставшееся время генерации страницы. Он отключится от дальнейшего сбора данных, отбросит все данные, которые он собрал до сих пор, и пропустит вывод своей информации.

Это полезно для длительных операций, которые выполняют очень большое количество запросов к базе данных, потребляют много памяти или иным образом не представляют интереса, например, для Query Monitor:

  • Резервное копирование или восстановление вашего сайта
  • Импорт и экспорт большого объёма данных
  • Запуск сканирования безопасности

Существуют ли дополнительные плагины для Query Monitor?

Список дополнительных плагинов для Query Monitor можно найти здесь.

Кроме того, Query Monitor прозрачно поддерживает дополнения для плагина Debug Bar. Если у Вас установлены дополнения Debug Bar, деактивируйте Debug Bar, и дополнения появятся в меню Query Monitor.

Где я могу предложить новую функцию или сообщить об ошибке?

Пожалуйста, используйте трекер проблем в репозитории Query Monitor на GitHub, поскольку там легче отслеживать проблемы, а не на форумах поддержки wordpress.org.

Включен ли монитор запросов уже в мой хостинг?

Некоторые веб-хостинги включают Query Monitor в состав своей хостинговой платформы, что означает, что вам не нужно устанавливать его самостоятельно. Вот некоторые из них, о которых я знаю:

Могу ли я нажать на трассировку стека, чтобы открыть файл в своем редакторе?

Да. Вы можете включить эту функцию в панели настройки.

Как сообщить об ошибке безопасности?

Вы можете отправить конфиденциальное сообщение об уязвимости в Query Monitor через вкладку «Безопасность» в репозитории GitHub. Процедура уведомления о проблемах безопасности на GitHub способствует конфиденциальному сотрудничеству по вопросам безопасности. За достоверное сообщение вы получите признание, а при необходимости – CVE номер.

Не сообщайте о проблемах безопасности на форумах поддержки WordPress.org или по электронной почте. Спасибо.

Вы принимаете пожертвования?

Я принимаю спонсорскую помощь через программу GitHub Sponsors. Если вы работаете в агентстве, которое разрабатывает WordPress, попросите свою компанию оказать спонсорскую помощь, чтобы инвестировать в ее цепочку развития. Инструменты, которые я поддерживаю, вероятно, сэкономят время и деньги вашей компании, и спонсорство GitHub теперь может осуществляться на уровне организации.

Кроме того, если вам понравится плагин, я буду рад, если вы оставите отзыв. А также расскажите о нем всем своим друзьям!

Отзывы

20.04.2026
I’ve been using Query Monitor since 2023, and I honestly can’t imagine debugging WordPress sites without it anymore. It’s not just a plugin, it’s a complete developer toolbox that sits in the admin bar. It’s lightweight enough to keep running on production sites without noticeable overhead. John Blackbourn has built something truly special here. Five stars isn’t enough. Thank you for this masterpiece.
08.04.2026
This plugin helped me realize a problem right in front of my eyes this whole time. A fantastic tool for troubleshooting database issues!
05.02.2026 1 ответ
Good. Shows a lot of useful stuff. Note that you will need to add /wp-content/db.php to your gitignore.
Посмотреть все 466 отзывов

Участники и разработчики

«Query Monitor» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

«Query Monitor» переведён на 26 языков. Благодарим переводчиков за их работу.

Перевести «Query Monitor» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений

4.0.6 (11 апреля 2026)

В 4 версии Query Monitor добавлен новый вид временной шкалы, а также осуществлён перенос механизма отрисовки панелей с PHP на сервере на более эффективный Preact на стороне клиента.

В версии 4.0.6 устранена проблема совместимости с темой GeneratePress.

Больше информации на querymonitor.com/4.

4.0.5 (10 апреля 2026)

В 4 версии Query Monitor добавлен новый вид временной шкалы, а также осуществлён перенос механизма отрисовки панелей с PHP на сервере на более эффективный Preact на стороне клиента.

В версии 4.0.5 исправлены следующие ошибки:

  • Обеспечение корректного закрытия тегов скрипта внутри данных без нарушения вывода.
  • Добавление «Так делать неправильно» на временную шкалу

Больше информации на querymonitor.com/4.

4.0.4 (10 апреля 2026)

В 4 версии Query Monitor добавлен новый вид временной шкалы, а также осуществлён перенос механизма отрисовки панелей с PHP на сервере на более эффективный Preact на стороне клиента.

В версии 4.0.4 исправлены следующие ошибки:

  • Видимость панели скриптов, когда в шапке нет активных скриптов.
  • Отображение числового форматирования в некоторых языковых стандартах.

Больше информации на querymonitor.com/4.

4.0.3 (9 апреля 2026)

В 4 версии Query Monitor добавлен новый вид временной шкалы, а также осуществлён перенос механизма отрисовки панелей с PHP на сервере на более эффективный Preact на стороне клиента.

В версии 4.0.3 исправлены следующие проблемы:

  • Улучшена совместимость с плагинами, которые выполняют запросы, не использующие UTF-8 или иным образом обрабатывают данные, не использующие UTF-8
  • Предотвращает PHP предупреждения для неопределенного файла или номера строки в некоторых кадрах трассировки стека
  • Упрощает и стандартизирует формат имен используемый в колбэках замыканий
  • Улучшает оформление и структуру окна временной шкалы

Больше информации на querymonitor.com/4.

4.0.2 (9 апреля 2026)

В 4 версии Query Monitor добавлен новый вид временной шкалы, а также осуществлён перенос механизма отрисовки панелей с PHP на сервере на более эффективный Preact на стороне клиента.

В версии 4.0.2 исправлены следующие проблемы:

  • Обеспечивает дополнительную обратную совместимость для сторонних плагинов, которые считывают данные из сборщиков данных QM и отображают их на собственных панелях
  • Добавляет временные обновления в представление временной шкалы

Больше информации на querymonitor.com/4.

4.0.1 (7 апреля 2026)

В 4 версии Query Monitor добавлен новый вид временной шкалы, а также осуществлён перенос механизма отрисовки панелей с PHP на сервере на более эффективный Preact на стороне клиента.

  • В версии 4.0.1 устранена проблема обратной совместимости с плагинами, которые регистрируют свои собственные меню или подменю в Query Monitor.

Больше информации на querymonitor.com/4.

4.0.0 (7 апреля 2026)

В 4 версии Query Monitor добавлен новый вид временной шкалы, а также осуществлён перенос механизма отрисовки панелей с PHP на сервере на более эффективный Preact на стороне клиента. Этот новый подход даёт ряд преимуществ:

  • Производительность значительно повышается, особенно на сайтах, где выполняется большое количество запросов, возникает большое количество ошибок PHP или собирается большой объем данных в одной из других панелей.
  • Это открывает возможности для дальнейших усовершенствований, таких как отображение показателей на стороне клиента, отложенная загрузка данных, отображение данных из различных запросов, а также более гибкое объединение данных в различные представления.
  • Объем исходных данных, собираемых Query Monitor, а также их потребление памяти были сокращены, и теперь эти данные предоставляются на странице в формате JSON. Чтобы ознакомиться с ними, обратите внимание на объект QueryMonitorData в консоли вашего браузера.

Больше информации на querymonitor.com/4.

3.20.4 (19 марта 2026)

3.20.3 (17 марта 2026)

  • Теперь повторное нажатие на кнопку «QM» в админбаре приводит к закрытию панели.
  • Улучшения доступности для кнопок-переключателей.
  • Теперь неудачные GET запросы к HTTP-API отображают активную ссылку.

3.20.2 (11 декабря 2025)

  • Предотвращает возникновение PHP ошибки при определенных условиях и когда не выполняются запросы к базе данных.

Предыдущие версии

Что касается списка изменений более ранних версий, обратитесь к странице релизов на GitHub.