En la Parte 1, la Parte 2 y la Parte 3 de nuestra serie de tutoriales de plantillas de meta box personalizadas, aprendimos cómo hacer una meta box reutilizable que obtenga toda la información de campo de una matriz fácil de leer y duplicar. Muchos de los datos son simples de usar simplemente haciendo eco en el metacampo de su plantilla o a través de una función, pero algunos de los campos son más complejos y requieren un poco más de precisión para usarlos adecuadamente. Este tutorial le dará una idea básica de cómo utilizar estos datos y puede explicarse de innumerables maneras..
WordPress proporciona múltiples formas de obtener metadatos posteriores.
La forma más sencilla de mostrar los datos es con the_meta ()
función. Puedes dejar esto directamente en tu single.php plantilla, pero no le dará los resultados que probablemente esté buscando. Es una salida muy literal de los datos en una lista desordenada prefijada con la clave de cada campo como se muestra en la imagen.
La forma más común de obtener datos guardados en un campo meta de publicación es con el get_post_meta ()
función. Esta es una forma sencilla de apuntar a un campo específico y almacenarlo en una variable que puede usarse más adelante.
$ custom_text = get_post_meta ($ post-> ID, 'custom_text', true);
El uso de este código dentro del bucle de publicación única pondría el texto "Algún texto en una entrada de texto básica" en la variable $ custom_text
que luego podría hacerse eco o filtrarse, o lo que quieras hacer con la cadena. Cuando solo estás tratando con un par de campos, este es probablemente el camino a seguir, pero en nuestro ejemplo, estamos trabajando con 11 campos diferentes. Llamarlos a todos individualmente con esta función podría inflar innecesariamente su código ya que hay una manera de obtener todos los datos a la vez..
Mi método favorito cuando trabajo con tantos campos es usar el get_post_custom ()
función. Con esta función, podemos almacenar todos los meta campos personalizados en una matriz y luego recuperar los datos que deseamos con la clave de matriz.
$ post_meta_data = get_post_custom ($ post-> ID);
nos dará una matriz que se ve así:
Array ([custom_text] => Array ([0] => Algún texto en una entrada de texto básica) [custom_textarea] => Array ([0] => Un párrafo o dos de un área de texto. Lorem ipsum dolor sit amet, consectetur adipiscing Elit. Donec tristique quam mi. Sed eget ligula sit amet ante dapibus tristique. Mauris vel enim mauris, vitae mattis tortor. Presente en el acceso a massa. 0] => activado) [custom_select] => Array ([0] => one) [custom_radio] => Array ([0] => two) [custom_checkbox_group] => Array ([0] => a: 2: i: 0; s: 3: "one"; i: 1; s: 5: "three";) [custom_post_id] => Array ([0] => 109) [custom_date] => Array ([0 ] => 25/05/2012) [custom_slider] => Array ([0] => 15) [custom_image] => Array ([0] => 413) [custom_repeatable] => Array ([0] => a : 3: i: 0; s: 22: "texto de un repetible"; i: 1; s: 27: "más texto de un repetible"; i: 2; s: 33: "¡los campos de texto repetibles son geniales! ";))
Como puede ver en esta matriz, WordPress almacena cada campo como una matriz porque es posible tener más de un valor para el mismo campo. Probablemente también notará que algunos de los campos están serializados. Examinemos más en el manejo de los datos de cada campo y veamos cómo solucionarlo..
Los campos de texto y área de texto son bastante simples de tratar. Puedes repetirlos con uno de los siguientes ejemplos:
echo $ post_meta_data ['custom_text'] [0]; echo apply_filters ('the_content', $ post_meta_data ['custom_textarea'] [0]); $ custom_checkox = $ post_meta_data ['custom_checkbox'] [0]; if ($ custom_checkbox == 'on') do_stuff ();
La primera línea simplemente emitirá la cadena como está, y la segunda línea convertirá los saltos de línea en párrafos con WordPress ' el contenido
filtrar. También puede utilizar estos mismos métodos para seleccionar, radio, fecha y campos deslizantes..
La última línea muestra cómo puede realizar una prueba para ver si se ha seleccionado o no una casilla de verificación. Si lo es, puede realizar varias funciones, o cualquier número de cosas.
Nuestros campos de grupo de casilla de verificación y campos repetibles almacenan matrices que se serializan en la base de datos. Antes de que podamos generar estos datos, debemos deserializarlos.
$ custom_checkbox_group = unserialize ($ post_meta_data ['custom_checkbox_group'] [0]); $ custom_repeatable = unserialize ($ post_meta_data ['custom_repeatable'] [0]);
los unserialize ()
function es una función básica de PHP que convierte nuestros datos en una matriz que es más fácil de usar. El código de arriba me dará dos matrices que se ven así:
Array ([0] => un [1] => tres) Array ([0] => texto de un [1] => más texto de un [2] => campos de texto repetibles son excelentes!)
Ahora puedo recorrer las matrices sin embargo quiero usarlas en mi salida. Es importante tener en cuenta que en el campo repetible, si también lo hace ordenable como lo hace nuestro ejemplo en la Parte 3 de nuestro tutorial de plantilla de meta box personalizado, las claves de la matriz se almacenarán automáticamente en el orden de 0, 1, 2, 3 , etc. y no en el orden en que se ingresaron originalmente antes de clasificarlos.
eco '
Este ejemplo generará una lista desordenada de cada cadena guardada en el $ custom_repeatable
formación.
Para nuestros campos Lista de publicaciones e Imagen, guardamos una identificación. Puede haber algunos casos muy raros en los que desee mostrar solo la ID, pero lo más probable es que desee utilizar la ID para obtener más información..
$ custom_post_id = $ post_meta_data ['custom_post_id'] [0]; echo '' .get_the_title ($ custom_post_id). ''; $ custom_image = $ post_meta_data ['custom_image'] [0]; echo wp_get_attachment_image ($ custom_image, 'thumbnail');
Este tutorial muestra las formas más básicas en que puede usar los datos que hemos almacenado con nuestras meta box personalizadas reutilizables. Poder guardar datos adicionales y usarlos en temas y complementos abre todo un nuevo mundo de posibilidades con WordPress. ¿Para qué lo usarás??