Query Monitor – панель инструментов разработчика для WordPress

Описание

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.4.

Кто может видеть выходные данные 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 на Patchstack. Команда Patchstack помогает проверять, сортировать и устранять любые уязвимости в системе безопасности.

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

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

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

Отзывы

27.11.2025
Sometimes you feel like your site is a black box and that is something that Query Monitor solves. It provides insight into what is happening, shows errors, and gives you stats and timings for the page load process. This helps in tracking down problems, in picking which plugins are the most performant, and when developing, to see what templates are being loaded. Amazing plugin, for free. Thank you John Blackbourn!
26.10.2025 1 ответ
Switched to WP studio as an easy solution to spinup a quick site for testing/cursor on my space limited macbook air — unfortunately it uses db.php for its sqllite based WP site databases so plugin is unable to function. Any plans in future to make amendments to this plugin to use anything other than db.php ?? Haven’t checked to see if WP Studio boys are planning to allow us to use mySQL/mariadb so that we can utilise this for plugin for plugin/theme development. Adrian
Посмотреть 461 отзыв

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

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

Участники

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

Перевести «Query Monitor – панель инструментов разработчика для WordPress» на ваш язык.

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

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

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

3.20.2 (11 December 2025)

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

3.20.1 (8 December 2025)

  • Подтверждает поддержку WordPress 6.9.
  • Удаляет вызовы устаревшего метода jQuery.focus().
  • Добавлены переносы строк в HTML-вывод для поддержания корректной работы браузера при просмотре исходного кода страницы.

3.20.0 (7 September 2025)

  • Откладывает загрузку файлов перевода как можно позже, чтобы минимизировать вероятность возникновения ошибки Загрузка перевода для домена query-monitor была запущена слишком рано
  • Реализованы некоторые начальные настройки совместимости для предстоящей версии PHP 8.5

3.19.0 (23 July 2025)

  • Добавлена поддержка промежуточного программного обеспечения Guzzle для ведения журнала клиентских запросов HTTP.
  • Исправляет конфликты плагинов, вызванные глобальной переменной JavaScript qm, переименовав ее в QueryMonitorData.
  • Исправлена неверная HTML-разметка, в которой элементы <th> были закрыты тегами </td>.

3.18.0 (16 June 2025)

  • Добавляет более полную обработку запросов HTTP API, которые были переопределены фильтром pre_http_request.
  • Исправлена обработка подавленных ошибок PHP как на PHP 7, так и на PHP 8.
  • Подтверждение поддержки WordPress 6.8.

3.17.2 (4 February 2025)

  • Восстановление панели «Блоки»

3.17.1 (2 February 2025)

  • Предотвращает использование устаревшей константы E_STRICT в PHP 8.4.
  • Позволяет избежать использования устаревших действий setted_transient и setted_site_transient в WordPress 6.8.
  • Пропускает отображение уведомлений _load_textdomain_just_in_time, когда они вызваны самим Query Monitor.
  • Использует более подходящее форматирование для устранения фатальной ошибки в контекстах REST API и Ajax.

3.17.0 (27 November 2024)

  • Поддержка WordPress 6.7.
  • Поддержка PHP 8.4.
  • Встроенные скрипты теперь выводятся с помощью wp_print_inline_script_tag(), что позволяет полностью реализовать политику безопасности контента.
  • Различные улучшения и исправления.

3.16.4 (25 July 2024)

  • Подтверждение поддержки WordPress 6.6.

3.16.3 (22 May 2024)

  • Предотвращает бесконечный цикл при протоколировании неправильных вызовов и устаревших вызовов.
  • Удаляет глобальную информацию из query-monitor.php

Earlier versions

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