Esta introducción en el bombeo de la salida de PHP y sus usos en WordPress contiene algunos recursos útiles:
Una demostración de primer código que muestra cómo el útil búfer PHP de salida es útil para los códigos cortos de ShortPress.
Una segunda demostración de código que muestra cómo el búfer de salida PHP puede ayudar a crear los complejos que usan la salida HTML legible.
Un tema infantil simple (disponible en GitHub) que contiene ambas demostraciones de código y le permite jugar solo con el código.
¡Disfrute de esta introducción detallada del amortiguación de salida de PHP para WordPress!
Cuando estaba aprendiendo PHP, una de las primeras cosas que realmente me sorprendió fue la diferencia entre el código que creó la salida: “cosas”, contenidas como HTML para el usuario y el código que no creó. Lo que entiendo ahora es que la mayoría del código PHP convertirá los datos, pero no se los mostrará a los usuarios. Las declaraciones de ECHO PHP están generando resultados esencialmente: se “agotan” en el código PHP, creando resultados significativos y visibles, mientras que la mayoría de los otros PHP no. Hay una excepción muy sólida de las reglas que acabamos de describir: apagar la salida de PHP. Con el almacenamiento de salida, puede capturar, almacenar y cambiar la salida de eco, antes de que salga. Este proceso de captura y trabajo con la salida de eco es lo que significa “amortiguación de salida”. Es un tema que me confundió primero, y luego (después, supongo, un … búfer) hizo mi mente.
¿Quieres aprender seriamente el desarrollo de WordPress? Despierta y corre hoy

En funcionamiento está nuestro curso completo “Aprende el desarrollo de WordPress”. Ahora, en la tercera edición actualizada y extendida, ha ayudado a cientos de compradores felices a aprender el desarrollo de WordPress de una manera rápida, inteligente y completa. Esto es lo que tienen que decir: “Creo que cualquiera está interesado en aprender el desarrollo de WordPress necesita este curso. Ver videos era como si estuvieran muchas luces encendidas “. -Jason, desarrollador de WordPress “Otros cursos que casi siempre he intentado no tienen explicaciones claras de lo que WordPress hace las cosas de cierta manera o cómo funcionan las cosas juntas. En funcionamiento hace todo esto y todo se explica claramente en un lenguaje fácil de entender “. -Caroline, WordPress Freelancer
Despierta y corre ahora
Entonces, pasemos para desbloquear la potencia de la salida de PHP y sus muchos usos en WordPress. En este artículo lo haremos:
Comprender la diferencia entre la salida y el procesamiento de datos más detallado
Explique los conceptos básicos de la memoria del búfer de salida PHP
Llegue al corazón por qué el búfer PHP de salida puede ser una técnica tan vital para los códigos cortos complejos de WordPress
Explore otro uso del almacenamiento en búfer de salida en WordPress: usos HTML intensos de The_Content Filter
Toque la posibilidad de usarlos para widgets
La diferencia entre la programación y la salida en el PHP La diferencia entre “tratar de mostrar cosas” y “tratar de manipular datos” es la diferencia entre las etiquetas de la plantilla de WordPress que comienzan con la palabra y el comienzo con get_the.
PHP consta de dos tipos de operaciones:
Tratando de mostrar cosas y
Intente manejar los datos.
La forma más inmediata en que las personas que aprenden WordPress entienden esta diferencia a menudo es la diferencia entre las etiquetas de la plantilla de WordPress que comienzan con el, como The_itle () y aquellos que comienzan con Get_the, como get_the_title (). Eso fue fiel para mí. Materializarnos con un ejemplo simple. Fingimos que en un tema queremos mostrar la identificación numérica de una publicación, pero primero queremos agregar 20. Este código, suponiendo que la identificación de la publicación en cuestión en 1, tendría el efecto de mostrar los valores enumerados de Comentarios bajo declaraciones: the_id (); // salidas 1 get_the_id (); // sin salida echo get_the_id (); // sale 1 (the_id () + 20); // salidas 1 (piense cuidadosamente sobre por qué!) Echo (get_the_id () + 20); // salidas 21 get_the_id es una función que devuelve un valor, para procesarlo más o simplemente mantener. Por el contrario, the_id () solo muestra el valor, no le devuelve o algo más. Básicamente, lo que quiero decir es que los datos (cadenas, números, lo que sea, que existe en la tierra PHP no se muestran de forma predeterminada. Get_the_id es una función que devuelve un valor, para procesarlo más o simplemente mantenerlo. Por el contrario, the_id () solo muestra el valor, no le devuelve o algo más. Entonces, si desea guardar un valor de la ID en una variable, desea escribir una declaración como $ id = get_the_id (). $ id = the_id (), aunque se ve bastante similar, realmente lo confundirá, porque tendrá un valor que realmente no está establecido.
Recuerdo que luché con este concepto durante horas literal (tal vez incluso días). Lo crucial es que los datos que manejes existen en la tierra PHP, pero si no los repite, ya sea con algo como Echo get_the_id () o con la función the_id (que, prácticamente, hace la declaración anterior), no va aparecer. Por el contrario, si el eco algo no crea algo que pueda manejar fácilmente en PHP. Por lo tanto, la línea the_id () + 20 arriba sale 1. Porque the_id () WordPress contiene un eco sin retorno. Entonces nuestra línea no tiene nada que hacer. En cambio, simplemente tenemos el resultado 1 de The_ID (), que es un eco en la pantalla. Todas estas reglas son bastante firmes en PHP, excepto (tambores, por favor): amortiguación de salida. El agua de amortiguación de la salida PHP con la función de salida PHP: en lugar de mostrar solo los datos que se eco o de otra manera se muestran, PHP los atrapará para usted y le permitirá guardarlos en una variable. Supongamos que desea manipular el valor que sale de The_id () y estamos en un mundo alternativo en el que WordPress no tiene un get_the_id (). ¿Qué estás haciendo? Bueno, solo para este tipo de escenario, PHP tiene el concepto de un búfer que un usuario puede manejar. El búfer de salida es el soporte en el que el PHP almacenará lo que de otro modo habría mostrado, de una manera que puede trabajar con él en su código.
Al ejecutar un búfer de salida, en lugar de mostrar solo los datos que se eco y mostrados, PHP lo atrapará para usted y le permitirá guardarlos en una variable. Luego, después de hacer los cambios (o no), puede hacerle eco de él usted mismo. Este es un concepto poderoso que le permite cambiar el impacto del código, que es más simple. Los elementos básicos de la salida de PHP son un conjunto de funciones que inician OB_, que es una abreviatura del término “búfer de salida”. Ob_start (): inicie la salida de la tamponia, iniciará la almohadilla de salida con una llamada a una función bien llamada: ob_start ().
Ob_start () inicia la almohadilla y elimina todo lo que golpearía el navegador web en una cadena. Es su forma de decir: “Hasta que desactive este búfer, todo lo que se habría eliminado, incluso el contenido con Echo, se almacena como una cadena progresiva única en el búfer”. Tantas funciones OB_ Una vez que haya iniciado el tampón con ob_start () y ha ingresado una salida de tampon, hay algunos pasos para recolectar esa salida y restablecer el tampón. La versión paso a paso es que se hará cargo del contenido del búfer con ob_get_contents (), que le brinda la salida tamponada para guardar como variable PHP o para eco directamente.
Pero OB_GET_CONTINS () deja el contenido existente en el búfer de salida y también lo mantiene en funcionamiento. Por lo tanto, también debe ejecutar ob_clean () para eliminar el pad y ob_end_clean () cuando haya terminado con él. La documentación de PHP.NET sobre el almacenamiento en búfer de salida, como la mayoría de las otras características del idioma, es bastante amable y accesible, por lo que si desea saber el paso a paso, lo recomendaría como fuente. Afortunadamente, solo hay una función que “cosechó” y deshabilita el búfer a la vez: ob_get_clean (). Ob_get_clean (): Tres pájaros, una piedra del 90% en los casos en que uso el búfer de salida PHP, de hecho, recupero su contenido con una llamada a ob_get_clean () que hace tres cosas juntas: tomar el contenido del búfer, Limpie el búfer y deshabilite el búfer adicional. Menciono la necesidad de limpiar y desactivar el búfer de salida para enfatizar una función PHP que hace ambas cosas por usted: ob_get_clean (). En realidad ob_get_clean () hace un total de tres cosas juntas: hacerse cargo del contenido del tamponio,
Limpia el tampón y

Deshabilitar el amortiguador adicional. (Esto no se muestra en nombre de la función desafortunadamente pero lo hace).
Probablemente el 90% de los tiempos usan el búfer de salida PHP, solo recupero su contenido llamando a ob_get_clean (). Entonces, para nuestra demostración de código simple, para usar ob_start () y ob_get_clean () para cambiar nuestra ID (fingiendo que estamos en un mundo donde no existe Get_The_id ()). Así es como se ve: ob_start (); La identificación (); $ id = ob_get_clean (); echo $ id + 20; Una cosa que vale la pena señalar aquí: siempre recibimos un valor de cadena de ob_get_clean (u ob_get_contins). Debido a que PHP está escrito vagamente, complacerá esa cadena ‘1’ en un número y nos lo agregará 20 aquí. Sin embargo, aún deberá seguir este tipo de conversiones de tipo en PHP, ya que pueden conducir a resultados inesperados. Una actualización rápida de los códigos cortos de WordPress, por lo que si conoce los códigos cortos de ShortPress, sabe que estas son una forma simple de agregar algo de programación al cuerpo de una publicación. Solo insertando algo como [nuestro_example_shortcode] en el cuerpo de nuestra publicación, podemos reemplazarlo con una salida de una función. Es tan hermoso y útil. El código de reemplazo [nuestro_example_shortcode] puede ser tan simple como: add_shortcode (‘our_example_shortcode’, ‘wpshout_example_shortcode_function’); Function wpshout_example_shortcode_function () {return ‘aparezco donde llamó el código corto!’;
} Prácticamente, solo llame a add_shortcode (que es un poco como un caso verdaderamente especial add_filter o add_action) con el nombre del código corto y el nombre de su función y está configurado. Los códigos cortos no eco, devuelven lo que es muy importante hacer sobre códigos cortos es lo siguiente: desea devolver lo que debe mostrarse, no eco. Cuando Echo confundió algo en una función de código corto, aparece justo en la parte superior del contenido del contenido, donde el_content () se nombra en su tema, en lugar de reemplazar lo que debería tener en la posición correcta en la publicación. Los códigos cortos siempre deben devolver el contenido de texto para aparecer en el lugar correcto. Debido a que debemos devolver nuestro contenido para el código corto, si queremos generar mucho HTML bruto en nuestro código corto, por ejemplo, dibujar tablas complejas o similares, entonces Tenemos dos malas opciones:
Ponga todo el código HTML en cadenas PHP, reproduciendo todos los bailes con citas. (Ya sabes, ‘
‘ Un poco divertido …)
Incluye un archivo de plantilla lleno de HTML y PHP, pero aparece en el lugar equivocado.
Este es el lugar donde el búfer de salida PHP se convierte en un rescate y por qué me gusta especialmente el búfer de salida para códigos cortos. Le permite usar plantillas HTML reales con inmensa facilidad sin tener que preocuparse por cómo funcionan los códigos cortos. La siguiente demostración muestra cómo. Demo 1: Por qué el amortiguación de salida de PHP es muy útil para los códigos cortos, esta demostración ofrece un escenario realista en el que la salida de PHP será muy útil para los códigos cortos. Vea la fuente completa sola que hemos creado un simple tema simple de diecisiete tsentidos que contienen el código completo para ambas demostraciones a continuación. ¡Compruébalo en Github! Puede descargarlo como un archivo zip o explorar la fuente. Propósito: Eliminar una plantilla compleja en un código corto, nuestro objetivo en esta demostración es crear un código corto que pueda eliminar una plantilla HTML/PHP relativamente compleja. Esta plantilla está en su propio archivo, post-quickview.php, en un subdosar de nuestro tema, personalizados: // entorno: este es el archivo post-quickview.php dentro de la carpeta personalizada.
<? Php the_itle (); ? ? ?
Ahora, aquí está la decisión: queremos poder servir esa plantilla como un código corto, para que podamos poner nuestras pequeñas vistas previas "QuickView" en cualquier lugar del contenido de nuestra publicación. Por lo tanto, solo debemos elegir una publicación después de su identificación de la siguiente manera: y obtener el siguiente resultado en el front-end:
¿Bastante claro? Aquí está el código para hacer esto, con un uso muy importante de la salida de PHP Tamponia para mantener get_template_part () por su comportamiento predeterminado, que es "echo") en la página: add_shortcode ('wpshout_quickview_post', 'wpshout_quickview_post' ''); Function wpshout_quickview_post ($ atts) {// Si no elegimos una identificación de publicación, return if (! $ Atts ||! } // Obtener el objeto de publicación actual y establecer el post global $ Post para apuntar a él $ this_post = get_post ($ atts ['post_id']); Global $ post; $ post = $ this_post; configurar_postata ($ post); // Iniciar el almacenamiento en búfer de salida, así que get_template_part no sepan en la página ob_start (); // Obtener la salida del archivo de plantilla get_template_part ('Custom-Templates/Post-QuickView'); // Guardar salida y dejar de salida Buffering $ output = ob_get_clean (); // devolver $ post a su estado original wp_reset_postata (); // Devuelve la salida almacenada para salir en la ubicación de código corto return $ output;

¿Guay, verdad? Nuestra plantilla Post-QuickView.php en sí se puede escribir en GROSS HTML y es libre de usar todo tipo de funciones de PHP que generen resultados, de modo que vuelvan al contenido HTML, en lugar de Echo. Aquí hay otro beneficio de este ejemplo: podemos mantener el código real PHP para nuestro código corto completo sin HTML. Todo lo que se imprime efectivamente en la pantalla está en un solo lugar: Post-QuickView.php. No se elabora como un código corto en sí y, potencialmente, en muchos otros lugares. Este tipo de pureza y separación clara de las preocupaciones no es muy común en el código de WordPress, pero es útil y una muy buena práctica. Demo 2: Salga de almacenamiento en búfer en una función de filtrado The_Content cuando algo más en WordPress ¿Queremos devolvernos en lugar de Echo? ¿Qué hay de las funciones de filtro de WordPress? Esta segunda demostración agrega un sótano HTML bastante largo en la parte inferior de los postes individuales conectando al filtro decontent. Ahora, un filtro de WordPress generalmente no debe hacer el eco de las cosas por sí solo, sino para cambiar algo (aquí, una cadena) y luego devolverlo. Entonces, ¿cómo construiremos nuestra cadena HTML sin repetirla? Aquí está la ruta sombría: $ string = ‘
section de pie
…’; devolver $ cadena; ¡Pero tenemos uno mejor! Solo escribiremos el HTML bruto directamente y usaremos el almacenamiento en búfer de salida para “capturar” que HTML para que podamos devolverlo en lugar de eliminarlo: // Php Buffering de salida para el filtro de WordPress the_content Ho que add_filter (‘the_content’, ‘,’, ‘

wpshout_add_single_post_footer ‘);función wpshout_add_single_post_footer ($ content) {// Solo en publicaciones individuales if (! is_singular (‘post’)) {return $ content;} // Comience a la salida de la salida para que podamos “escribir” en la página ob_start ();? Acerca de una tabla? Una variable $ footer = ob_get_clean ();// Devuelve la cadena adjunta al contenido devolver $ contenido.$ pie de página;} Así es como esto muestra este implemento en un sitio demostrativo:
Para el código más limpio posible, como he notado en la demostración #1, sería muy fácil compartir este contenido HTML en un archivo de plantilla propio e incluirlo con get_template_part () nuevamente, debido a get_template_part () para ir directamente a la página. Considere: Salir búfer para plantillas en widgets además de códigos cortos, otro lugar en WordPress donde podría despertarme para llamar a la salida de PHP es crear widgets. A diferencia de los códigos cortos, el método de widget de su clase de expansión WP_Widget no debe devolver el resultado deseado, sino que solo puede hacer eco. Pero, como los códigos cortos, todavía no me gusta mezclar HTML con el código PHP directo. Entonces podría usar el tampón de salida. Si no está realmente familiarizado con la creación de widgets en WordPress PHP, querrá consultar nuestro curso gratuito al respecto: Crear widgets de WordPress: la guía completa asumirá que comprende la forma general de wordpress widgets en el resto de esta sección, para que Si quieres tener sentido y no lo sabes, tómate un descanso aquí y léelo. Como dije, debido a que no me gusta demasiado para mezclar el código PHP orientado con el código PHP orientado, a menudo usaré plantillas en mis widgets, como en el caso de los códigos cortos. La diferencia es simplemente que los métodos relevantes de un widget mostrarán su resultado. Entonces, el código se ve notablemente similar, el único cambio real es que el retorno se convierte en un eco. function widget () {ob_start (); Incluye ‘ruta/to/su/plantplate.php’; echo ob_get_clean ();
} En widgets, sin embargo, este código no es tan claro la elección correcta.Después de todo, comencé este artículo explicando que si puedes hacer eco de las cosas, realmente no tendrás que usar la almohadilla de salida PHP.Y de hecho, a menudo escribiré el código como: function widget () {incluir ‘ruta/to/su/plantplate.php’;

} La razón principal por la que puedo usar la almohadilla de salida es que necesito manejar la salida (o forma) de manera compleja. Es un pensamiento raro. Tanto con códigos cortos como con widgets, el almacenamiento en búfer de salida es una de las características más útiles y modestas del PHP, lo que mejora enormemente su código de WordPress. Pero con los widgets, la necesidad de usar el búfer de salida es mucho menos absoluto que en códigos cortos. Buffering de salida PHP: una herramienta muy útil que acabo de cubrir un lugar simple donde creo que los desarrolladores de WordPress pueden obtener grandes beneficios de la salida, códigos cortos, pero no termine aquí. El almacenamiento en búfer de salida es una de las formas más valiosas en que puede facilitar su vida dentro de cualquier base de código PHP antigua y negligente. Un ejemplo con el que tengo demasiada experiencia: ¿tiene una función masiva y aterradora, que hace una acción útil y escupe una salida que no desea? Comience ese búfer de salida, llame a la función (y obtenga su resultado) y deseche la almohadilla. También es muy divertido y útil en muchos otros lugares. Como hemos demostrado, es muy útil con los códigos cortos de WordPress. Pero no debe usarlo todo el tiempo, como ilustra los códigos cortos de WordPress. Armado con una comprensión sólida de las cosas que producen salida y cómo usar la almohadilla de salida, está a punto de dominar el PHP para WordPress. Por cierto: si te gusta nuestro estilo de explicar la columna PHP de WordPress, hay muchos más donde esto llegó a nuestra guía completa “Aprender el desarrollo de WordPress”, en funcionamiento. ¡Mirar!



homefinance blog