Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

People are often confused about how to get data from global objects/vars

Question: In which ways can you inspect global variables?


This Q was written because it's needed pretty often over here at WA. I just wanted to have it as a fav to link over here (people often don't take a look at github gist links).

Feel free to modify the example if something is wrong or you think that the explanation is missing something. If you want to add other useful stuff, please add each as a single answer. Thank you.

share|improve this question
    
This should be a community wiki, or rephrased into a question. –  t31os Mar 25 '11 at 15:08
    
@t31os Could you do this? I don't even know where i'd find a community wiki... –  kaiser Mar 25 '11 at 15:32
    
I think i could previously when in beta, not now though, the rep requirements are higher, might need to ask a higher rep user to mark the question as wiki, maybe @Rarst or @MikeSchinkel can.. –  t31os Mar 25 '11 at 15:35
    
@MikeSchinkel @Rarst @Jan Fabry - push –  kaiser Apr 8 '11 at 13:55
add comment

3 Answers

Depending on where in process of loading the scripts and rendering the final output, some of the above mentioned variables may not be present. If you want a fairly inclusive view, perhaps a bit extreme, try:

var_dump($GLOBALS);

var_dump is also nice in that tell you the type and formats the data a bit.

share|improve this answer
add comment
up vote 2 down vote accepted

How to inspect the data:

Use this to get an insight view of what you can use from the current request/wp_query.

function inspect_wp_query() 
{
  echo '<pre>';
    print_r($GLOBALS['wp_query'])
  echo '</pre>';
}
// If you're looking at other variables you might need to use different hooks
// this can sometimes be a little tricky.
// Take a look at the Action Reference: http://codex.wordpress.org/Plugin_API/Action_Reference
add_action( 'shutdown', 'inspect_wp_query', 999 ); // Query on public facing pages
add_action( 'admin_footer', 'inspect_wp_query', 999 ); // Query in admin UI

Btw:

    // this:
    global $wp_query;
    $wp_query;
    // is the same as
    $wp_query;
    // and as this:
    $GLOBALS['wp_query'];

// You can do this with each other global var too, like $post, etc.

How to actually get the data:

// Example (not the best one)
(Object) WP_Query -> post (stdClass) -> postdata (Array)

// How to get the data:
// Save object into var
$my_data = new WP_Query; // on a new object
// or on the global available object from the current request
$my_data = $GLOBALS['wp_query'];

// get object/stdClass "post"
$my_post_data = $my_data->post;
// get Array
$my_post_data = $my_data['post'];


Examples
List all sidebar names?
(Generate a drop down/select object with all sidebars inside the global $wp_registered_sidebars)

share|improve this answer
add comment

Or, if you're lazy, just install the Debug Bar plugin.

It adds a button to the admin bar that, when clicked, reveals a panel with all kinds of useful information, including deprecation notices, WP_Query variables and an SQL query log.

share|improve this answer
    
Absolutely right. But it won't explain you how to access global variables/objects and how to get parts out of it. –  kaiser Mar 25 '11 at 15:34
    
Btw: Could you just add a short explanation on how this works? I guess it could/would really help extending this "how-to basics"-AQ. –  kaiser Apr 1 '11 at 2:19
    
@kaiser: Done . –  scribu Apr 1 '11 at 2:45
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.