Dominar los metadatos de WordPress trabajar con bucles

En las primeras dos partes de esta serie, cubrimos qué metadatos hay en WordPress y cómo trabajar con las matrices que normalmente se devuelven. Ahora que ha aprendido a realizar el trabajo de detección necesario para encontrar la estructura de una matriz, es hora de aprender a usar los bucles para automatizar el proceso de salida de una matriz..

Una vez que aprenda esta importante habilidad, nunca más tendrá que escribir el marcado HTML repetitivo..

Uso de bucles Foreach en matrices

El bucle estándar de WordPress es un mientras bucle, como en "mientras hay elementos para bucear, continúe el bucle". Muchas veces, cuando se trabaja con metadatos, es más fácil trabajar con para cada lazo.

Estos bucles nos permiten escribir nuestro PHP como si estuviéramos trabajando con una sola matriz, y luego, para cada elemento, emitir cada elemento de una matriz multidimensional a través del mismo bucle.
Anteriormente vimos esta matriz:

 $ heroes => array ('Luke' => array ('full_name' => 'Luke Skywalker', 'home_planet' => 'Tatooine', 'trope' => 'Unlikely Hero',), 'Leia' => array ('full-name' => 'Leia Organa', 'home_planet' => 'Alderaan', 'trope' => 'Badass Princess',), 'Han' => array ('full_name' => 'Han Solo' , 'home_planet' => 'Corell', 'trope' => 'Lovable Rouge',),);

Si quisiéramos hacer esta matriz legible, con un marcado adecuado crearíamos un para cada lazo.

Solemos configurar para cada Bucles con formas plurales y singulares de la variable, es decir,., foreach ($ heroes como $ hero) y desde allí podemos usar la variable singular para representar cada elemento de la matriz.

Entonces podemos tratar nuestra matriz multidimensional como una matriz única..

 $ heroes => array ('Luke' => array ('full_name' => 'Luke Skywalker', 'home_planet' => 'Tatooine', 'trope' => 'Unlikely Hero',), 'Leia' => array ('full-name' => 'Leia Organa', 'home_planet' => 'Alderaan', 'trope' => 'Badass Princess',), 'Han' => array ('full_name' => 'Han Solo' , 'home_planet' => 'Corell', 'trope' => 'Lovable Rouge',),); eco '
    '; foreach ($ heroes como $ hero) echo '
  • Nombre completo: '. $ Hero [' full_name '].'
  • '; // final del bucle foreach echo '
';

Este es un ejemplo abstracto, pero estoy seguro de que puedes ver el poder. En lugar de reescribir (y tener que actualizar) el mismo marcado tres veces, solo escríbelo una vez, y deja que PHP lo recorra tres veces.

Estas seis líneas de código simples podrían manejar tan solo cincuenta publicaciones, mientras que cinco nos muestran el poder de los bucles foreach para escribir códigos escalables y fáciles de administrar.

En este siguiente ejemplo, tomamos una matriz de ID de publicación y cada entrada devuelve el nombre de un campo youtube_name como un enlace que se establece en el youtube_link campo. Estas seis líneas de código simples podrían manejar tan solo cincuenta publicaciones y cinco que nos muestran el poder de para cada Loops para escribir fácil de administrar, código escalable..

 $ posts = array (5, 8, 13, 21, 34); foreach ($ publica como $ post) $ link = get_post_meta ($ post, 'youtube_link', 'single'); $ name = get_post_meta ($ post, 'youtube_name', 'single'); echo ''. $ nombre. '';  // fin de bucle foreach

Uso de get_post_meta () en el bucle principal de WordPress

Hasta ahora he estado especificando manualmente ID de publicación, pero cuando se usa en el bucle principal de WordPress, podemos establecer la ID en get_post_meta () manualmente con get_the_ID (). Usando los mismos campos personalizados que usamos en el último ejemplo, pero mostrándolos como parte del bucle principal, si quisiéramos agregar el video de youtube debajo del contenido de la publicación, podríamos simplemente agregar, después de, el contenido(); algo como esto:

 $ link = get_post_meta (get_the_ID (), 'youtube_link', 'single'); $ name = get_post_meta (get_the_ID (), 'youttube_name', 'single'); eco '' . $ nombre. '';

Combinando un mientras y para cada Lazo

Muchas veces tendremos un campo personalizado que contiene una matriz de datos serializados para información relacionada. Por ejemplo, un campo puede contener el título de un video, el tipo de mimo, la URL y la descripción..

El almacenamiento serializado es especialmente útil cuando se pueden agregar múltiples elementos a un campo. Trabajar con estos tiempos de campos puede ser complicado en los bucles principales de WordPress. La forma más fácil de manejarlos es con un bucle secundario dentro de su bucle principal.

En este ejemplo, he agregado a un bucle de publicación de WordPress estándar, que es un mientras bucle, un segundo bucle, que recorre cada campo de video para construir reproductores de video HTML5, uno para cada vídeo.

No importa si hay un video o diez. Estas simples líneas de código crearán un jugador para cada una..

 if (have_posts () while (have_posts ()) the_post (); the_content (); $ videos = get_post_meta (get_the_ID (), 'videos', false); foreach ($ videos como $ video) ?> 

Casi ahi

A través de esta serie, hasta ahora, hemos cubierto los metadatos que se encuentran en WordPress y hemos aplicado este conocimiento para aprender sobre matrices y bucles de PHP. También hemos visto algunos ejemplos prácticos sobre cómo utilizar estos datos, o matrices de datos en el bucle.

Este es el primer paso para aprender a usar WordPress como un sistema de administración de contenido. El siguiente paso es aprender cómo consultar la base de datos por meta campos, que es lo que cubriremos la próxima vez..