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.


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.


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)


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.