A support/troubleshooting plugin for WordPress.
This plugin sets the following debug constants in wp-config.php
on plugin activation and removes them on plugin deactivation. Any errors will result in a PHP Exception being thrown. Debug constants per Debugging in WordPress.
Default settings:
define( 'WP_DEBUG_LOG', true ); define( 'SCRIPT_DEBUG', true ); define( 'SAVEQUERIES', true );
@ini_set( ‘display_errors’, 1 ); is set when the plugin is active. WP_DEBUG
is set to true when the plugin is first run, thereafter it can be turned off in the Settings.
The Settings page allows the user to set the following.
define( 'WP_DEBUG', true ); // Default on initial plugin installation. define( 'WP_DEBUG_DISPLAY', false ); // Default when not declared is true. define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true ); // WordPress 5.2 WSOD Override.
When the plugin is deactivated best efforts are made to re-add pre-existing constants to their former state. When the plugin is activated the default settings and any saved settings are restored.
This plugin uses the wp-cli/wp-config-transformer command for writing constants to wp-config.php
.
Debug Quick Look from Andrew Norcross is included with this plugin to assist in reading the debug.log file. If you already have this plugin installed you should delete it when WP Debugging is not active.
Query Monitor and Debug Bar plugins are optional dependencies to aid in debugging and troubleshooting. The notice for installation will recur 45 days after being dismissed.
If you have a non-standard location for your wp-config.php
file you can use the filter wp_debugging_config_path
to return the file path for your installation.
The filter wp_debugging_add_constants
allows the user to add constants to wp-config.php
.
The filter returns an array where the key is the name of the constant and the value is an array of data containing the value as a string and a boolean to indicate whether or not the value should be passed without quotes.
$my_constants = [ 'my_test_constant' => [ 'value' => 'abc123', 'raw' => false, ], 'another_test_constant' => [ 'value' => 'true' ], ];
The value
option contains the constant’s value as a string.
The raw
option means that instead of placing the value inside the config as a string it will become unquoted. The default is true
. Set as false
for non-boolean values.
Example:
add_filter( 'wp_debugging_add_constants', function( $added_constants ) { $my_constants = [ 'my_test_constant' => [ 'value' => '124xyz', 'raw' => false, ], 'another_test_constant' => [ 'value' => 'true' ], ]; return array_merge( $added_constants, $my_constants ); }, 10, 1 );
This will create the following constants.
define( 'MY_TEST_CONSTANT', '124xyz' ); define( 'ANOTHER_TEST_CONSTANT', true );
PRs are welcome against the develop branch on GitHub.
Bootstrap::deactivate()
fix for PHP 8.3afragen/wp-dismiss-notice
afragen/wp-dismiss-notice
preg_match
more greedyafragen/debug-quick-look
wp-dismiss-notice
with transient and only poll wp_remote_get()
weeklysanitize_key()
for noncesWP_Dependency_Installer()
in plugins_loaded
hook to avoid loading pluggable.php
.WP_Dependency_Installer
plugins_loaded
hookesc_attr_e
for translating stringsSettings:line 68
wp-dependency-installer
librarywp-cli/wp-config-transformer
set_pre_activation_constants()
, not sure why I did that but it can cause problems #10WPConfigTransformer
objectWPConfigTransformer
Exception error live. The issue seems to be that a file_get_contents()
on the wp-config.php
file path, at random times, returns an empty value. I’m done chasing this random error in wp-cli/wp-config-transformer
. Modified version of wp-cli/wp-config-transformer
presentwp-config.php
everywhere, still occasional WSOD reports.wp-config.php
is empty before calling WPConfigTransformer
init
hookprocess_filter_constants()
as chained method in Bootstrap
Settings
action link to frontwp-config.php
file emptywp-config.php
wp-config.php
is emptywp-config.php
not set in specific functionswp-config.php
, exit with notice if not foundDebug Quick Look
to display error log file pathwp_debugging_add_constants
filter for users to add their own constantsDomain Path
headerwp-config.php
in directory above ABSPATH
wp_debugging_config_path
to set non-standard path to wp-config.php
wp-cli/wp-config-transformer
to change wp-config.php
norcross/debug-quick-look
as dependency via composer but use my forkcomposer.json
and wp-cli