Cómo: inspeccionar variables globales en WordPress

22

Las personas a menudo están confundidas acerca de cómo obtener datos de objetos / variables globales

Pregunta: ¿ De qué maneras puedes inspeccionar las variables globales?


Esta Q fue escrita porque se necesita con bastante frecuencia aquí en WA. Solo quería tenerlo como favorito para vincular aquí (la gente a menudo no echa un vistazo a los enlaces de github gist).

Siéntase libre de modificar el ejemplo si algo está mal o si cree que a la explicación le falta algo. Si desea agregar otras cosas útiles, agregue cada una como una sola respuesta. Gracias.

kaiser
fuente
Esto debería ser un wiki de la comunidad, o reformulado en una pregunta.
t31os
@ t31os ¿Podrías hacer esto? Ni siquiera sé dónde encontraría un wiki comunitario ...
kaiser
Creo que podría hacerlo antes, cuando en fase beta, no ahora, sin embargo, los requisitos son más altas repeticiones, podría necesitar solicitar a un usuario más alta del representante para marcar la pregunta como wiki, tal vez @Rarst o @MikeSchinkel puede ..
t31os
@MikeSchinkel @Rarst @Jan Fabry - push
kaiser

Respuestas:

12

O, si eres flojo, simplemente instala el complemento de la barra de depuración .

Agrega un botón a la barra de administración que, cuando se hace clic, revela un panel con todo tipo de información útil, incluidos avisos de desaprobación, variables WP_Query y un registro de consultas SQL.

scribu
fuente
Absolutamente correcto. Pero no le explicará cómo acceder a las variables / objetos globales y cómo obtener partes de él.
Kaiser
Por cierto: ¿Podría agregar una breve explicación sobre cómo funciona esto? Supongo que podría / ayudaría realmente a extender estos "procedimientos básicos" -AQ.
kaiser
@kaiser: Listo.
scribu 01 de
4

Cómo inspeccionar los datos:

Use esto para obtener una vista de lo que puede usar de la solicitud actual / 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

Por cierto:

    // 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.

Cómo obtener realmente los datos:

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


Ejemplos ¿
Enumerar todos los nombres de la barra lateral?
(Genere un objeto desplegable / seleccionado con todas las barras laterales dentro del global $wp_registered_sidebars)

Kaiser
fuente
0

Dependiendo de en qué parte del proceso de carga de los scripts y representación de la salida final, algunas de las variables mencionadas anteriormente pueden no estar presentes. Si desea una vista bastante inclusiva, quizás un poco extrema, intente:

var_dump($GLOBALS);

var_dump también es bueno porque te dice el tipo y formatea un poco los datos.

Jahmic
fuente