I've recently inherited a WordPress plugin that has a few bugs in it. My problem is that I'm also new to WordPress and I don't know how to log debug messages so that I can figure out what's going on.
I really just need a way to create a popup or log to a console.
According to your comment where you
Much rather use a system where debug messages can be turned off and on in one place
:It can be done in WordPress. There is a constant called
WP_DEBUG
that you can set totrue
orfalse
from yourwp-config.php
file in your WordPress folder (that file where you add database parameters ).So, you can use:
The alert will show only when you have WP_DEBUG set to
true
(for example on a development version of the website like on your localhost) while it won't show on your production version of the website(You just have to setWP_DEBUG
to false there).There's this excellent Q&A at WordPress Stack Exchange, lots of knowledgeable folks explaining their debugging techniques: How do you debug plugins?
In the Javascript arena you basically need
<script>console.log('the value is' + variable);</script>
. And use Google Chrome inspector and/or Firebug.In PHP, it depends on where things are happening or where you want the output.
Debugging in WordPress
Oficial documentation in the Codex.
Example
wp-config.php
for DebuggingPrinting information to a log file
The following uses an OSX/Unix/Linux system path, adjust for Windows.
Then, in you code call the function
my_log_file( $post, 'The post contents are:' );
Print directly in the rendered Html
And wherever needed use it like:
echo_log( $post );
.FirePHP
This extension will log information directly in the browser console. Refer to the following Q&A at WordPress Answers: How to use WP-FirePHP extension?.
Good luck and you may keep us updated.
I'm aware that my answer comes several years after the original question but, since I recently had the same exact problem and still couldn't find a satisfying solution, I coded a plugin for that.
It specifically addresses the OP need:
Hope it helps all the plugin/theme developers out there, who are looking for a quick and easy way to debug their code https://wordpress.org/plugins/bugfu-console-debugger
Just install it and call the logging method from your PHP code to log straight to the browser JavaScript console.
By using Visual Studio and a dev tools php debugger extension, you can actually debug it step by step rather than logging them and trying to figure out the variable values during the run time. There might be other alternatives as well.
PS: It is not free :(
The general PHP debugging strategy is to use
print_r( $var )
statements and refresh the page. Simple and easy. If you want to step into the code Xdebug is what you want to install.