Enable Query Monitor
Query Monitor is a WordPress plugin that provides a developer tools panel for WordPress. It enables debugging of database queries, PHP errors, warnings and notices, hooks and actions, block editor blocks, enqueued scripts and stylesheets, HTTP API calls, and more. Query Monitor is available by default on all VIP environments through the VIP Go Mu-Plugins.
The WordPress.org Plugin directory listing for the Query Monitor plugin provides a more complete feature list and a guide for usage.
Enable with the VIP-CLI
Using the VIP-CLI to issue WP-CLI commands, the view_query_monitor
capability can be applied to a role or individual users.
Enable for specific roles
Using the wp cap add
command, this example will add the view_query_monitor
capability for all users with the role “editor”.
vip @wpvip.production -- wp cap add editor view_query_monitor
Enable for specific users
Using the WP-CLI command
to add the capability on a per-user basis, this example will add the wp user add-cap
view_query_monitor
capability for the user login “my_username”.
vip @wpvip.production -- wp user add-cap my_username view_query_monitor
Enable through code
Query Monitor can be enabled through code by hooking into the wpcom_vip_qm_enable
filter, and adding that code to a file in either an application’s plugins or client-mu-plugin directories.
The following code example demonstrates code that can be added to enable Query Monitor for a site, and allow access to Query Monitor for users with vip_support
and Administrator user roles:
<?php
/**
* Enable Query Monitor for a defined set of roles or users.
*
* @param bool $enable Whether Query Monitor should be enabled.
*/
function vip_custom_enable_query_monitor( $enable ) {
$allowed_roles = array( 'vip_support', 'administrator' );
// Optional, enable for specific user logins.
// $allowed_users = array( 'dev_user_login', 'qa_user_login' );
if ( is_user_logged_in() ) {
$user = wp_get_current_user();
$login = $user->get('user_login');
$roles = (array) $user->roles;
// Allow if the user is assigned a role in the $allow_role array.
if ( count( array_intersect( $roles, $allowed_roles ) ) > 0 ) {
return true;
}
// Allow if the user's login is in the $allowed_users array.
if ( isset( $allowed_users ) && in_array( $login, $allowed_users ) ) {
return true;
}
}
return $enable;
}
add_filter( 'wpcom_vip_qm_enable', 'vip_custom_enable_query_monitor' );
Caution
When enabling Query Monitor through code, avoid disabling access for VIP Support users whose roles will appear as vip_support
.
If the wpcom_vip_qm_enable
filter returns false
for users with the role vip_support
, VIP team members will not be able to use Query Monitor in a situation where support is required. This can delay VIP’s ability to promptly help especially during urgent or high-priority issues.
Use Query Monitor when logged out
It is possible to view Query Monitor’s debugging output when not logged in, or when logged in as a user without the view_query_monitor
capability.
- Log in as a user with the
view_query_monitor
capability. - Select the cogwheel icon in the upper right of Query Monitor’s console.
- Select the button labeled “Set authentication cookie“.
- Log out or switch users, then refresh the page.
Query Monitor’s console will be visible on both the front end and the admin.

Last updated: March 13, 2023