Как: проверить глобальные переменные в WordPress

22

Люди часто не понимают, как получить данные из глобальных объектов / переменных.

Вопрос: Каким образом вы можете проверять глобальные переменные?


Этот вопрос был написан, потому что он нужен довольно часто здесь, в Вашингтоне. Я просто хотел, чтобы ссылки были здесь в фаворе (люди часто не смотрят ссылки на github).

Не стесняйтесь изменять пример, если что-то не так или вы думаете, что в объяснении чего-то не хватает. Если вы хотите добавить другие полезные вещи, пожалуйста, добавьте каждый как один ответ. Спасибо.

кайзер
источник
Это должно быть сообщество вики или перефразированное в вопрос.
t31os
@ t31os Не могли бы вы сделать это? Я даже не знаю, где я могу найти сообщество вики ...
kaiser
Я думаю, что мог раньше, когда в бета-версии, но не сейчас, требования к представителям выше, возможно, потребуется попросить пользователя с более высоким повторением пометить вопрос как вики, может быть @Rarst или @MikeSchinkel могут ..
t31os
@MikeSchinkel @Rarst @Jan Fabry - push
kaiser

Ответы:

12

Или, если вам лень, просто установите плагин Debug Bar .

Он добавляет кнопку на панель администратора, которая при нажатии открывает панель со всеми видами полезной информации, включая уведомления об устаревании, переменные WP_Query и журнал запросов SQL.

scribu
источник
Совершенно верно. Но это не объяснит вам, как получить доступ к глобальным переменным / объектам и как извлечь из них части.
Кайзер
Кстати: не могли бы вы добавить краткое объяснение того, как это работает? Я думаю, что это может / могло бы действительно помочь в расширении этой основы практического применения.
Кайзер
@ Кайзер: Готово.
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 также хорош тем, что сообщает тип и немного форматирует данные.

Jahmic
источник