Comment: inspecter des variables globales dans WordPress


22

Les gens sont souvent confus sur la façon d'obtenir des données à partir d'objets / variables globaux

Question: De quelles manières pouvez-vous inspecter les variables globales?


Ce Q a été écrit parce qu'il est assez souvent nécessaire ici à WA. Je voulais juste l'avoir comme favori pour créer un lien ici (les gens ne regardent souvent pas les liens github gist).

N'hésitez pas à modifier l'exemple si quelque chose ne va pas ou si vous pensez que l'explication manque quelque chose. Si vous souhaitez ajouter d'autres éléments utiles, veuillez ajouter chacun comme réponse unique. Merci.


Il doit s'agir d'un wiki communautaire ou reformulé en question.
t31os

@ t31os Pourriez-vous faire cela? Je ne sais même pas où trouver un wiki communautaire ...
Kaiser

Je pense que je pouvais auparavant en version bêta, mais pas maintenant, les exigences en matière de représentants sont plus élevées, il faudra peut-être demander à un utilisateur de représentants plus élevé de marquer la question comme wiki, peut-être que @Rarst ou @MikeSchinkel peut ..
t31os

@MikeSchinkel @Rarst @Jan Fabry - push
kaiser

Réponses:


12

Ou, si vous êtes paresseux, installez simplement le plugin Debug Bar .

Il ajoute un bouton à la barre d'administration qui, lorsque vous cliquez dessus, révèle un panneau avec toutes sortes d'informations utiles, y compris des avis de dépréciation, des variables WP_Query et un journal de requête SQL.


Absolument raison. Mais cela ne vous expliquera pas comment accéder aux variables / objets globaux et comment en extraire des parties.
kaiser

Btw: Pourriez-vous simplement ajouter une courte explication sur la façon dont cela fonctionne? J'imagine que cela pourrait / aiderait vraiment à étendre ce "basique pratique" -AQ.
kaiser

@kaiser: Terminé.
scribu

4

Comment inspecter les données:

Utilisez-le pour obtenir un aperçu de ce que vous pouvez utiliser à partir de la requête / wp_query actuelle.

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.

Comment obtenir réellement les données:

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


Exemples
Liste tous les noms des barres latérales?
(Générez un objet déroulant / sélectionnez avec toutes les barres latérales à l'intérieur du global $wp_registered_sidebars)


0

Selon l'endroit où le processus de chargement des scripts et le rendu de la sortie finale sont en cours, certaines des variables mentionnées ci-dessus peuvent ne pas être présentes. Si vous voulez une vue assez inclusive, peut-être un peu extrême, essayez:

var_dump($GLOBALS);

var_dump est également agréable car il vous indique un peu le type et le format des données.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.