Mảng $ GLOBALS cho WordPress


9

Có một tập tin mà WordPress định nghĩa $GLOBALS?

Tôi chỉ tò mò về việc WordPress sử dụng nó cho mục đích gì và cho mục đích gì.

Đó là tất cả!

Câu trả lời:


15

Tôi không chắc liệu tất cả những thứ này có phải là toàn cầu WordPress hay không, nhưng tôi đã thực hiện tìm kiếm nhanh các loại tệp WordPress và cố gắng trích xuất tất cả các toàn cầu mà tôi có thể ..

Đây là danh sách tôi biên soạn. Nó có thể không hoàn hảo, nhưng * hy vọng * đại diện cho rất nhiều $GLOBALSkhóa mà WordPress sử dụng Nó sẽ không tính đến các biến toàn cầu hóa không được xác định rõ ràng là $GLOBAL, nhưng vẫn có phạm vi toàn cầu.

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

Nếu bạn muốn có được ý tưởng tốt hơn về mọi thứ bên trong mảng toàn cầu, bạn có thể chạy một cái gì đó như sau để in ra, bởi vì cách tiếp cận trên rõ ràng là thiếu sót vì toàn cầu được định nghĩa theo nhiều cách.

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

Điều đó sẽ cung cấp cho bạn một danh sách toàn diện hơn về các biến trong phạm vi toàn cầu.

Hy vọng điều đó hữu ích. :)


++++++ wp_filesystem, wp_rewrite, wp_registered_widgets, wp_registered_sidebars, wp_b Mã là Thơ :)
onetrickpony

Chắc chắn, có nhiều hơn kết thúc trong phạm vi toàn cầu, nhưng chúng không được định nghĩa theo cùng một cách, vì vậy không thể đưa vào mô hình regex của tôi.
t31os

3
Đã thêm một chức năng vào câu trả lời của tôi sẽ cung cấp một danh sách toàn cầu hơn ... :)
t31os

5

Tiếc là không có.

Các định nghĩa toàn cầu được phân tán thông qua codebase.

Không có tài liệu cho hầu hết trong số họ.


Tôi nghĩ cũng cần lưu ý rằng nếu bạn khai báo BẤT K biến biến nào trong phạm vi toàn cầu, nó sẽ tự động được thêm vào mảng $ GLOBALS mà không cần gõ $GLOBALS[, vì vậy một tìm kiếm grep sẽ không thể trả về mọi biến toàn cục trong WordPress.
stevendesu

@steven_desu: Tôi nghĩ bạn có ý định đăng nó lên câu trả lời của t31os.
scribu

Đó không phải là grep, về mặt kỹ thuật, nó là một mẫu regex khớp với tất cả các tệp trong thư mục cài đặt WordPress bằng Notepad ++, tìm kiếm của tôi đã đi dọc theo các dòng $GLOBALS([^, ]+)([, ]+)... cho tôi một bó kết quả, sau đó tôi sao chép và dán, và tước bỏ tất cả các dữ liệu không liên quan.
t31os

1

$GLOBALSlà một mảng kết hợp có chứa các tham chiếu đến tất cả các biến hiện được xác định trong phạm vi toàn cầu. Đây là một công cụ ngôn ngữ PHP.

Biến toàn cục có thể được định nghĩa đơn giản bằng cách tạo một mục mới trong $GLOBALSmảng như thế này:

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

WordPress Globals được sử dụng để chia sẻ dữ liệu trên các tệp. Chúng không được xác định ở bất kỳ nơi cụ thể nào nhưng bạn có thể tìm thấy một số trong những vị trí quan trọng nhất ở đây: http://codex.wordpress.org/Global_Variables

PHP làm cho nó thậm chí còn dễ sử dụng hơn $GLOBALSbằng cách cho phép bạn truy cập các mục bằng cách khai báo nó bằng cách sử dụng globaltừ khóa.

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

giống như:

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

Xin lưu ý, nếu bạn không xác định $foolà toàn cầu, nó sẽ không được liên kết với phạm vi biến toàn cục.

Một số đọc thêm về điều này: http://www.php.net/manual/en/reserved.variabled.globals.php

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.