Як: перевірити глобальні змінні в WordPress


22

Люди часто плутаються у тому, як отримати дані з глобальних об'єктів / змінних

Питання: Якими способами можна перевірити глобальні змінні?


Цей Q був написаний тому, що він потрібен досить часто тут, у Вашингтоні. Я просто хотів, щоб це було як прихильне посилання тут (люди часто не дивляться на посилання на github gist).

Не соромтеся змінювати приклад, якщо щось не так або ви думаєте, що в поясненні чогось не вистачає. Якщо ви хочете додати інші корисні речі, будь ласка, додайте кожен як одну відповідь. Дякую.


Це має бути вікі спільноти або перефразоване у запитання.
t31os

@ t31os Ви могли це зробити? Я навіть не знаю, де б я знайшов вікі спільноти ...
kaiser

Я думаю, що я міг раніше, коли в бета-версії, але не зараз, вимоги до повторення вищі, можливо, потрібно буде попросити більш високого реп-користувача, щоб позначити це питання вікі, можливо, @Rarst або @MikeSchinkel може ..
t31os

@MikeSchinkel @Rarst @Jan Fabry - push
kaiser

Відповіді:


12

Або, якщо ви лінуєтесь, просто встановіть плагін Debug Bar .

Він додає кнопку до панелі адміністратора, яка при натисканні розкриває панель із усілякою корисною інформацією, включаючи повідомлення про заставу, змінні WP_Query та журнал запитів SQL.


Абсолютно вірно. Але це не пояснить вам, як отримати доступ до глобальних змінних / об’єктів і як отримати частини з них.
кайзер

Btw: Ви можете просто додати коротке пояснення, як це працює? Я думаю, що це могло б / справді допоможе розширити цю "як основу" -AQ.
кайзер

@kaiser: Готово.
scribu

4

Як перевірити дані:

Використовуйте це, щоб отримати уявлення про те, що ви можете використовувати з поточного запиту / 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.

Як насправді отримати дані:

// 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'];


Приклади
Список усіх імен бічної панелі?
(Створіть випадаючий / виберіть об’єкт за допомогою всіх бічних панелей всередині global $wp_registered_sidebars)


0

Залежно від того, де в процесі завантаження сценаріїв і надання кінцевого результату, деякі з вищезгаданих змінних можуть бути відсутні. Якщо ви хочете досить вражаючий погляд, можливо трохи екстремальний, спробуйте:

var_dump($GLOBALS);

var_dump також приємний тим, що розповідає вам тип і трохи форматує дані.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.