
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-noticeafragen/wp-dismiss-noticepreg_match more greedyafragen/debug-quick-lookwp-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_Installerplugins_loaded hookesc_attr_e for translating stringsSettings:line 68wp-dependency-installer librarywp-cli/wp-config-transformerset_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 WPConfigTransformerinit hookprocess_filter_constants() as chained method in BootstrapSettings action link to frontwp-config.php file emptywp-config.phpwp-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 ABSPATHwp_debugging_config_path to set non-standard path to wp-config.phpwp-cli/wp-config-transformer to change wp-config.phpnorcross/debug-quick-look as dependency via composer but use my forkcomposer.json and wp-cli