I have some custom post meta being generated and am ready to add to a post’s meta. I know how to do this. However, save_post
causes a redirection after POST data has been sent. This means I am redirected to the dashboard and lose access to my POST data – therefore I cannot debug easily.
Currently I am using something like:
add_action('save_post', 'something_process'); function something_process() { if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return; print_r($_POST); }
Is there a way to easily debug this?
Advertisement
Answer
The best approach for me has been to use a function to log the values to wp-content/debug.log, lifted from http://fuelyourcoding.com/simple-debugging-with-wordpress:
if(!function_exists('log_it')){ function log_it( $message ) { if( WP_DEBUG === true ){ if( is_array( $message ) || is_object( $message ) ){ error_log( print_r( $message, true ) ); } else { error_log( $message ); } } } }
Then use the function like this in your save_post hook:
log_it($_POST); log_it('The value for ' . $custom_field . ' is ' . $_POST[$custom_field]);
Make sure that wp-content/debug.log is writable, and that you have debugging enabled in wp-config.php:
@ini_set('display_errors',0); define( 'WP_DEBUG', true ); // Turn debugging ON define( 'WP_DEBUG_DISPLAY', false ); // Turn forced display OFF define( 'WP_DEBUG_LOG', true ); // Turn logging to wp-content/debug.log ON define( 'WP_POST_REVISIONS', false); // Disables revision functionality