Is there a file where WordPress defines $GLOBALS
?
I'm just curious as to what WordPress uses it for and for what purpose.
That's all!
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It only takes a minute to sign up.
Sign up to join this communityIs there a file where WordPress defines $GLOBALS
?
I'm just curious as to what WordPress uses it for and for what purpose.
That's all!
I'm not sure if all of these are WordPress globals, but I did a quick grep type search of the WordPress files and tried to extract all the globals I could..
This is the list I compiled. It may not be perfect, but should *hopefully* represent a lot of the $GLOBALS
keys that WordPress uses It won't account for globalised variables that aren't explicitly defined as $GLOBAL
, but still have global scope.
$GLOBALS['_menu_item_sort_prop']
$GLOBALS['_wp_sidebars_widgets']
$GLOBALS['blog_id']
$GLOBALS['body_id']
$GLOBALS['comment']
$GLOBALS['comment_depth']
$GLOBALS['content_width']
$GLOBALS['current_site']
$GLOBALS['current_user']
$GLOBALS['custom_background']
$GLOBALS['custom_image_header']
$GLOBALS['debug_bar']
$GLOBALS['editor_styles']
$GLOBALS['is_winIE']
$GLOBALS['link']
$GLOBALS['login_grace_period']
$GLOBALS['month']
$GLOBALS['month_abbrev']
$GLOBALS['more']
$GLOBALS['post']
$GLOBALS['post_type']
$GLOBALS['posts']
$GLOBALS['query_string']
$GLOBALS['request']
$GLOBALS['single']
$GLOBALS['submenu']
$GLOBALS['tab']
$GLOBALS['type']
$GLOBALS['weekday']
$GLOBALS['weekday_abbrev']
$GLOBALS['weekday_initial']
$GLOBALS['wp_admin_bar']
$GLOBALS['wp_filter']
$GLOBALS['wp_object_cache']
$GLOBALS['wp_post_types']
$GLOBALS['wp_query']
$GLOBALS['wp_styles']
$GLOBALS['wp_taxonomies']
$GLOBALS['wp_the_query']
$GLOBALS['wp_version']
If you wanted to get a better idea of everything inside the global array you could run something like the following to get a print out, because the above approach was obviously flawed since globals are defined in more than one way.
add_action( 'shutdown', 'print_them_globals' );
function print_them_globals() {
ksort( $GLOBALS );
echo '<ol>';
echo '<li>'. implode( '</li><li>', array_keys( $GLOBALS ) ) . '</li>';
echo '</ol>';
}
That should give you a more comprehensive list of variables in the global scope.
Hope that's helpful. :)
Unfortunately, no.
Globals definitions are scattered throught the codebase.
There's no documentation for most of them, either.
$GLOBALS[
, so a grep search wouldn't possibly return every global variable in WordPress.
Jul 29, 2011 at 13:59
$GLOBALS([^, ]+)([, ]+)
... which gave me a bundle of results, which i then copy and pasted, and stripped away all the irrelevant data.
$GLOBALS
is an associative array containing references to all variables which are currently defined in the global scope. This is a PHP language tool.
Global variables can be defined simply by creating a new item in the $GLOBALS
array like this:
$GLOBALS['foo'] = 'foo content';
WordPress Globals are used to share data across files. They are not defined in any specific place but you can find some of the most important ones here: http://codex.wordpress.org/Global_Variables
PHP makes it even easier to use $GLOBALS
by allowing you to access the items by simply declaring it using the global
keyword.
global $foo;
$foo = 'foo new content';
is the same as:
$GLOBALS['foo'] = 'foo new content';
Please note, if you didn't define $foo
as global, it will not be linked to the global variable scope.
Some further reading on this: http://www.php.net/manual/en/reserved.variables.globals.php
If you try to print out all the $GLOBALS
and get an error 'allowed memory exceeded' or something like that, than put this code inside functions.php:
if(!function_exists("print_all_globals")){
function print_all_globals() {
$test = array_keys($GLOBALS);
echo "<pre style='background:blue;color:white;'>";
print_r($test);
echo "</pre>";
exit;
}
add_action('wp_enqueue_scripts','print_all_globals');
}