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!
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
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. 🙂
Method 2
Unfortunately, no.
Globals definitions are scattered throught the codebase.
There’s no documentation for most of them, either.
Method 3
$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
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0