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.


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.


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)


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.