$conf, $runtime; function_exists('chdir') AND chdir(APP_PATH); $r = 'mysql' == $conf['cache']['type'] ? website_set('runtime', $runtime) : cache_set('runtime', $runtime); } function runtime_truncate() { global $conf; 'mysql' == $conf['cache']['type'] ? website_set('runtime', '') : cache_delete('runtime'); } register_shutdown_function('runtime_save'); ?>formatting - Nice way to print_r arrays|Programmer puzzle solving
最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

formatting - Nice way to print_r arrays

matteradmin9PV0评论

So you know how Drupal has functions in modules like Devel that allow you to output arrays in a nice format like dsm($array) or krumo($array)... Does WordPress have an equivalent or a nice way of displaying print_r($array)?

So you know how Drupal has functions in modules like Devel that allow you to output arrays in a nice format like dsm($array) or krumo($array)... Does WordPress have an equivalent or a nice way of displaying print_r($array)?

Share Improve this question asked Feb 2, 2012 at 2:00 emcemc 2781 gold badge3 silver badges10 bronze badges 2
  • what is wwrong with var_dump() or print_r() ? what exactly are you aiming for ? (i am sorry, I do not know druppal so well .. – krembo99 Commented Feb 2, 2012 at 2:27
  • 2 krumo allows users to print arrays into a formatted list that expands on click. So instead of having <pre>-wrapped print_r output everywhere, you end up with some very nice dropdown lists instead. Much nicer to display! – emc Commented Feb 2, 2012 at 2:36
Add a comment  | 

6 Answers 6

Reset to default 12

I created a Kint plugin that works really well. I also integrates with the Debug Bar plugin. You can download it at: http://wordpress/extend/plugins/kint-debugger/

There are a few functions to help you out with WordPress specific globals:

  • dump_wp_query()
  • dump_wp()
  • dump_post()

For printing arrays in a styled, collapsible format you would do the following.

$foo_bar = array(
    'foo' => 'bar',
    'bar' => 'oof',
    'rab' => 'foo'
);
d($foo_bar); //Styled
s($foo_bar); //Un-styled

You can install and use Krumo with WordPress (or any PHP app really). There's the Hikari Krumo plugin that simplifies use, though check the comments there, there's an error that you'll need to manually fix to get it working with latest WP. There's also the WordPress Debug Bar plugin which you might find useful.

EDIT- Another option I've recently discovered, Kint; screenshot:

For this kind of stuff, I wrote REF (requires PHP 5.3). Among many other features, it displays contents of DocBlock comments and linkifies PHP-internal classes, methods and functions (links point to the PHP manual). It also handles WordPress functions (links point to queryposts).

Here's the output of $GLOBALS at the setup stage of WordPress in HTML mode (r($GLOBALS); in functions.php):

If you just wrap the print_r() in <pre> tags it will output beautifully. If you're looking for a bit better diagnostics than that, black box and the debug bar posted by @Milo are my gotos.

Also you can use the plugin Debug Objects; list also scripts and styles. The Plugin has many more options for dev and debugging, but also this feature.

Alternative is this source, you find informations and the post about this topic here:

add_action('wp_footer', 'fb_urls_of_enqueued_stuff');
add_action('admin_footer', 'fb_urls_of_enqueued_stuff');
function fb_urls_of_enqueued_stuff( $handles = array() ) {
    global $wp_scripts, $wp_styles;
    // scripts
    foreach ( $wp_scripts -> registered as $registered )
        $script_urls[ $registered -> handle ] = $registered -> src;
    // styles
    foreach ( $wp_styles -> registered as $registered )
        $style_urls[ $registered -> handle ] = $registered -> src;
    // if empty
    if ( empty( $handles ) ) {
        $handles = array_merge( $wp_scripts -> queue, $wp_styles -> queue );
        array_values( $handles );
    }
    // output of values
    $output = '';
    foreach ( $handles as $handle ) {
        if ( ! empty( $script_urls[ $handle ] ) )
            $output .= $script_urls[ $handle ] . '<br />';
        if ( ! empty( $style_urls[ $handle ] ) )
            $output .= $style_urls[ $handle ] . '<br />';
    }
    echo $output;
}

Why not just use xdebug?

Looks pretty neat to me, by default.

There is also Kint, http://code.google/p/kint/ but I found the dropdowns more confusing, then the full output of xdebug.

Articles related to this article

Post a comment

comment list (0)

  1. No comments so far