Come: ispezionare le variabili globali in WordPress


22

Le persone sono spesso confuse su come ottenere dati da oggetti / variabili globali

Domanda: in che modo è possibile controllare le variabili globali?


Questo Q è stato scritto perché è necessario abbastanza spesso qui a WA. Volevo solo averlo come preferito per il collegamento qui (le persone spesso non danno un'occhiata ai collegamenti github gist).

Sentiti libero di modificare l'esempio se qualcosa non va o pensi che manchi qualcosa nella spiegazione. Se vuoi aggiungere altre cose utili, per favore aggiungi ognuna come singola risposta. Grazie.


Questo dovrebbe essere un wiki della comunità, o riformulato in una domanda.
t31os,

@ t31os Potresti farlo? Non so nemmeno dove troverei un wiki della comunità ...
Kaiser

Penso che potrei in precedenza quando in beta, non ora, i requisiti di reputazione sono più alti, potrebbe essere necessario chiedere a un utente di reputazione superiore di contrassegnare la domanda come wiki, forse @Rarst o @MikeSchinkel possono ..
t31os

@MikeSchinkel @Rarst @Jan Fabry - push
kaiser

Risposte:


12

Oppure, se sei pigro, installa il plug-in Debug Bar .

Aggiunge un pulsante alla barra di amministrazione che, quando viene cliccato, rivela un pannello con tutti i tipi di informazioni utili, inclusi avvisi di deprecazione, variabili WP_Query e un registro delle query SQL.


Assolutamente giusto. Ma non ti spiegherà come accedere a variabili / oggetti globali e come estrarne parti.
Kaiser

Btw: potresti aggiungere una breve spiegazione su come funziona? Immagino che potrebbe / aiuterebbe davvero estendere questo "how-to basic" -AQ.
Kaiser

@kaiser: Fatto.
scribu,

4

Come ispezionare i dati:

Usalo per avere una visione di ciò che puoi usare dalla richiesta corrente / 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.

Come ottenere effettivamente i dati:

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


Esempi
Elencare tutti i nomi della barra laterale?
(Genera un menu a discesa / seleziona oggetto con tutte le barre laterali all'interno del global $wp_registered_sidebars)


0

A seconda del processo di caricamento degli script e del rendering dell'output finale, alcune delle variabili sopra menzionate potrebbero non essere presenti. Se vuoi una visione abbastanza inclusiva, forse un po 'estrema, prova:

var_dump($GLOBALS);

var_dump è anche carino in quanto ti dice il tipo e formatta i dati un po '.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.