Por defecto, no puede mirar directamente el procesamiento de PHP, sino solo sus efectos. Una necesidad persistente en la programación es saber exactamente qué sucede con su código. Esto puede ser particularmente complicado en WordPress por al menos tres razones:
El código PHP de WordPress se puede modificar ampliamente en muchos lugares: en temas parentales, temas secundarios y complementos.
El Código PHP de WordPress contiene muchos estados globales: estados invisibles, como la identidad de la publicación actual, que puede afectar su propio código de manera difícil de predecir.
El código PHP siempre se ejecuta completamente antes de ser visto en el navegador como HTML.
Este tercer punto significa que, por defecto, no puede mirar directamente el procesamiento de PHP, sino solo sus efectos. Esto es diferente, por ejemplo, por JavaScript, cuya funcionalidad de la consola.
También es diferente de HTML y CSS simples, donde lo que aparece en el navegador es el marcado (“código”) en sí y se puede acceder y analizar de manera transparente con herramientas como los desarrolladores de Chrome. Entonces, hoy presentaré lo más cercano del PHP de Console.log: la función print_r (). Explicaré print_r () y en qué circunstancias puede usar (no en sitios vivos, por favor), luego presentaré algunos casos prácticos de uso en el desarrollo de WordPress. Lo que es print_r () y por qué es útil print_r () se imprime sobre una variable en HTML para que pueda averiguar sobre esa variable en su navegador web.
Según las referencias oficiales de la función PHP, print_r () “Imprime información que puede ser leído por el hombre sobre una variable”. Esto significa que imprime los valores que toma una variable en HTML para que pueda averiguar esa variable directamente en su navegador web. Aquí hay un ejemplo, directamente desde php.net: $ a = array (‘a’ => ‘Apple’, ‘b’ => ‘banana’, ‘c’ => array (‘x’, ‘y’, ‘ z ‘)); print_r ($ a); Si ejecuta este código, el comando print_r () imprimirá lo siguiente en el navegador: Array ([a] => Apple [b] => banana [c] => array ([0] => x [1] = > y [2] => z)) Si ejecuta el código anterior justo antes del contenido de publicación, conectando The_Content, como discutiremos a continuación, verá lo siguiente (en el navegador izquierdo, en los desarrolladores de Chrome a la derecha ): Haga clic en Big

¿Por qué es genial? Porque le permite introspecar, para comprender todo sobre las variables con las que trabaja al hacer el desarrollo de PHP. En otras palabras, cuando llamas, digamos, Global $ Post; Para trabajar con la publicación $ actual, no solo espera entender qué $ publica en él: en realidad puede verificar. Comenzará a ver el poder de esto en los ejemplos a continuación. No para sitios en vivo porque print_r () escupe una marca fea en la página, no se recomienda ejecutar en sitios en vivo. Print_r () es para solucionar problemas, y el mejor lugar para solucionar las cosas es en un entorno de procesamiento. Debido a que imprime_r () escupe el marcado feo en la página, no se recomienda ejecutar en sitios en vivo, aunque es posible si no tiene alternativas.
Si tiene que ejecutar un LIME_DUMP () en un sitio en vivo, puede hacerlo un poco más responsable al incluir los resultados en un Div Oculto: <? Php var_dump ($ testVar); ? print_r (), var_dump () y eco no usan print_r () exclusivamente para inspeccionar variables: otros dos métodos, var_dump () y eco, pueden funcionar de manera similar. Echo, la función PHP principal que imprime cosas en la página, se puede usar para inspeccionar variables. Sin embargo, funciona solo en cadenas y cosas que se pueden transformar fácilmente en cuerdas, como números enteros. Si intenta hacer eco de una matriz, solo obtiene una matriz, y si se hace eco de un objeto, bloquee el sitio con un error fatal, ninguno es muy útil para nuestros propósitos "descubrir qué sucede". Uso var_dump () con bastante frecuencia. Var_dump () es más completo que print_r () pero eso significa que es menos legible, como en la siguiente comparación:
Print_r de un objeto wp_quey
Var-dump del mismo objeto wp_quey

Sin embargo, a veces necesita var_dump () para completar la información que imprime_r () no le mostrará, como en este ejemplo de stack overflow: // dada $ tieTarr = array (”, false, array (’42’)); // ejecutando var_dump ($ testirr); Da este resultado: Array (4) {[0] => String (0) “” [1] => Bool (falso) [2] => int (42) [3] => Array (1) {[0 ] => String (2) “42”)}} // ejecutando print_r ($ testirr); Da este resultado: Array ([0] => [1] => [2] => 42 [3] => Array ([0] => 42)) Como puede ver, print_r () no hará la distinción entre números enteros (42) y cadenas numéricas (“42”) o entre cadenas vacías (“”) y el falso booleano. Estas distinciones son importantes, ¡así que llame a lime_dump () cuando lo necesite! Para nuestros propósitos, sin embargo, print_r () es más fácil de leer y generalmente es lo suficientemente bueno como para averiguar qué necesitamos saber sobre las variables con las que estaba trabajando . Ejemplo 1: Mostrando todos los campos personalizados de una publicación y sus valores para nuestra primera demostración print_r (), inspeccionaremos todos los campos personalizados de una publicación, también llamadas meta post. Tuve que hacer esta inspección precisa recientemente, porque no estaba seguro de qué campos personalizados tienen algunos de mis tipos de publicaciones. En un entorno de organización (no en vivo), en un nuevo complemento o en funciones.php de su base, el código que escribiremos muestra de la siguiente manera:

add_filter (‘the_content’, ‘wpshout_print_r_demo’); función wpshout_print_r_demo ($ content) {$ meta = get_post_meta (get_the_id ()); print_r ($ meta); devolver $ contenido; } El código funciona de la siguiente manera:
Primero nos conectamos al filtro de WordPress the_content. Ejecutaremos nuestra función personalizada wpshout_print_r_demo () y se nos ofrece el contenido de la publicación actual, $ contenido, con el cual jugar. Guardamos todos los metadatos tomados en una variable, $ meta.

Luego, print_r () $ meta, ponlo en la página en un formulario que el hombre puede leer.
Finalmente, devolvemos el contenido de la publicación, $ contenido, sin cambios.
¿Por qué conectamos esto al filtro decontent? Por dos razones: primero, la conexión the_content nos permite usar funciones de bucle como get_the_id (). En segundo lugar, nos permite saber exactamente dónde se imprimirá nuestra impresión: justo por encima del contenido en sí.
Aquí está el resultado, visto en el navegador a la izquierda y en las herramientas de desarrollador de Chrome:
Haga clic para aumentar
Como puede ver, observamos rápidamente todo el metal de la publicación adjunta a la publicación actual y, a medida que navegamos por el sitio, veremos esta información para cada publicación que analizamos hasta que deshabilitemos el código anterior. Ejemplo 2: Mostrando publicaciones tomadas por un WP_QUEY en esta segunda demostración print_r (), mostraremos las publicaciones tomadas por un wp_quey personalizado. Con frecuencia ejecuto un código similar para verificar rápidamente si mi WP_Query personalizado se comporta como espero.
Aquí está el código: add_filter (‘the_content’, ‘wpshout_print_r_demo’); Función wpshout_print_r_demo ($ content) {$ args = array (‘post_type’ => ‘post’, ‘tax_query’ => array (‘taxonomy’ => ‘categoría’, ‘campo’ => ‘slog’, ‘términos’ ” => ‘Ideas’,),), ‘Orderby’ => ‘Title’, ‘Order’ => Desc ‘,); $ NewQuery = nuevo WP_Query ($ args); print_r ($ newQuery-> publicaciones); devolver $ contenido; } Como antes, no tenemos conveniencia. Esta vez, escribimos una consulta personalizada que se hace cargo de las siguientes publicaciones: Publicaciones cuyas post_type es POST,
En la categoría “ideas” (cuyo sirviente soy ideas),

Ordenado en orden alfabético inversa.
Hacemos esto creando una variable $ Args que especifica los tres parámetros enumerados. Luego pasamos $ Args en nuestro constructor WP_Query, y el objeto WP_Query se guarda en la variable $ NewQuery. (Si no está familiarizado con la escritura de consultas personalizadas en WordPress, consulte nuestra guía sobre este tema). Ahora, para nuestra () impresión: imprimiremos $ NewQuery-> Publicaciones. Esto significa que solo queremos la propiedad de publicaciones del objeto WP_QUEY, no todo el objeto en sí. Entonces, lo que obtenemos en la página es una lista de elementos postales con todas sus propiedades:
Haga clic para aumentar

Periscope arriba: usos prácticos de print_r () en el desarrollo de WordPress
Tags Periscope arriba: usos prácticos de la impresión
homefinance blog