Como inspecionar variáveis ​​globais no WordPress

22

As pessoas geralmente ficam confusas sobre como obter dados de objetos / variáveis ​​globais

Pergunta: De que maneira você pode inspecionar variáveis ​​globais?


Este Q foi escrito porque é necessário com bastante frequência aqui no WA. Eu só queria tê-lo como favorito para vincular aqui (as pessoas geralmente não dão uma olhada nos links de essência do github).

Sinta-se à vontade para modificar o exemplo se algo estiver errado ou se você acha que está faltando alguma explicação. Se você quiser adicionar outras coisas úteis, adicione cada uma como uma única resposta. Obrigado.

kaiser
fonte
Este deve ser um wiki da comunidade ou reformulado em uma pergunta.
T31os
@ t31os Você poderia fazer isso? Eu nem sei onde eu iria encontrar uma comunidade wiki ...
kaiser
Eu acho que eu poderia anteriormente quando em beta, não agora, porém, os requisitos rep são mais elevados, pode precisar de pedir um usuário representante superior para marcar a pergunta como wiki, talvez @Rarst ou @MikeSchinkel pode ..
t31os
@MikeSchinkel @Rarst @Jan Fabry - push
kaiser

Respostas:

12

Ou, se você é preguiçoso, basta instalar o plugin Debug Bar .

Ele adiciona um botão à barra de administração que, quando clicado, revela um painel com todos os tipos de informações úteis, incluindo avisos de descontinuação, variáveis ​​WP_Query e um log de consulta SQL.

scribu
fonte
Absolutamente certo. Mas isso não explica como acessar variáveis ​​/ objetos globais e como obter partes dele.
kaiser
Btw: Você poderia apenas adicionar uma breve explicação sobre como isso funciona? Eu acho que isso poderia / realmente ajudaria a estender esse "básico de instruções" - AQ.
Kaiser #
@kaiser: Feito.
Scrib #
4

Como inspecionar os dados:

Use isso para obter uma visão detalhada do que você pode usar na solicitação atual / 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.

Como realmente obter os dados:

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


Exemplos
Listar todos os nomes da barra lateral?
(Gere uma lista suspensa / selecione um objeto com todas as barras laterais dentro da global $wp_registered_sidebars)

kaiser
fonte
0

Dependendo de onde está no processo de carregamento dos scripts e renderização da saída final, algumas das variáveis ​​mencionadas acima podem não estar presentes. Se você deseja uma visão bastante inclusiva, talvez um pouco extrema, tente:

var_dump($GLOBALS);

O var_dump também é bom, pois informa o tipo e formata um pouco os dados.

Jahmic
fonte