web-dev-qa-db-ja.com

ワードプレスの$ GLOBALS配列

wordpressが$ GLOBALSと定義しているファイルはありますか?

私はどんなワードプレスがそれをどんな目的のために使っているかについてただ興味があります。

それで全部です!

7
chrisjlee

これらのすべてがWordPressグローバルであるかどうかはわかりませんが、WordPressファイルのgrepタイプのクイック検索を行い、可能な限りすべてのグローバルを抽出しようとしました。

これは私があなたのためにコンパイルしたリストで、完璧ではないかもしれませんが、WordPressが使用する$GLOBALSキーの多くを*うまくいけば*表す必要があります。 '$GLOBALとして明示的に定義されていませんが、グローバルスコープを保持しています。

$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']

上記のアプローチには明らかに欠陥があるため、グローバル配列内のすべてをより良く理解したい場合は、次のようなものを実行して印刷することができます(グローバルは複数の方法で定義されています)。

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>';
}

これにより、グローバルスコープ内の変数のより包括的なリストが得られます。

お役に立てば幸いです.. :)

10
t31os

残念だけど違う。

グローバル定義はコードベース全体に散らばっています。

それらのほとんどに関する文書もありません。

4
scribu

'$ GLOBALS'は、現在グローバルスコープで定義されているすべての変数への参照を含む連想配列です。これはPHP言語ツールです。

グローバル変数は、次のように$ GLOBALS配列に新しい項目を作成するだけで定義できます。

$GLOBALS['foo'] = 'foo content';

WordPressのグローバルは、ファイル間でデータを共有するために使用されます。それらは特定の場所で定義されていませんが、あなたはここで最も重要なもののいくつかを見つけることができます: http://codex.wordpress.org/Global_Variables

PHPでは、グローバルキーのWordを使用してアイテムを宣言するだけでアイテムにアクセスできるため、$ GLOBALSをさらに簡単に使用できます。

global $foo;
$foo = 'foo new content';

と同じです。

$GLOBALS['foo'] = 'foo new content';

注意してください、あなたがグローバルとして$ fooを定義しなかったならば、それはグローバル変数にリンクされないでしょう。

これについてさらに読む: http://www.php.net/manual/en/reserved.variables.globals.php

0
dwainm