En este video, hablo de una situación particular del “mundo real” en la que estaba involucrado en cómo manejo la página de CodePen Meetups.
En los primeros días de los Meetups de CodePen, solo teníamos uno planeado. Iba a ser la primera reunión de CodePen en Austin, Texas. Así que hice una página para él como parte del sitio web principal de CodePen (un proyecto de Rails) en la URL / meetups /. Allí, pude diseñarlo como quisiera. Estaba averiguando qué tipo de información necesitaba estar en esa página y cómo presentarla. (En el video, desenterramos una copia del sitio en ese momento, a través de Cached Pages (captura de pantalla)).
Pasó el tiempo. Le agregué algunas reuniones y la forma de mostrar múltiples reuniones en la página tomó forma. Descubrí qué bits de información eran comunes entre todas las reuniones y cómo demostrarlo. Al mismo tiempo, las actualizaciones se estaban volviendo tediosas. Agregar nuevos es trabajo. Es fácil olvidarse de quitar los viejos. Y es un poco horrible eliminar HTML de esa manera, sabiendo que es información potencialmente útil que está destruyendo. Simplemente estaba editando una plantilla HTML aquí.
Llegó el momento en que esto realmente necesitaba ser sistematizado y trasladado a un sistema de gestión de contenidos. Afortunadamente, el movimiento fue bastante fácil, ya que sabía exactamente lo que necesitaba y sabía que tenía herramientas para lograrlo. De hecho, hemos hecho este tipo de cosas antes varias veces. Por ejemplo aquí y aquí.
Viene algo como esto:
- Crea un nuevo tipo de publicación personalizada ("Meetups") con este complemento.
- Adjunte exactamente los campos personalizados que desee a ese CPT (fecha, hora, lugar, etc.).
- ¡Publicar!
Hemos establecido has_archive
a true
nuestra CPT, así que nos dieron la URL / meetups / de forma gratuita, que utiliza la plantilla `archivo-meetups.php` automáticamente. Sin embargo, necesitábamos hacer un trabajo personalizado serio en esa plantilla, ya que teníamos que:
- Muestra toda la información que necesitamos tal como la queremos.
- Muestra las próximas reuniones en orden de fecha.
- Mueva automáticamente las reuniones antiguas a la sección "Reuniones anteriores".
Todo totalmente factible. Primero, busquemos las reuniones que queremos (después de la fecha de hoy). Lo hacemos ejecutando una consulta personalizada que involucra el campo personalizado adecuado
'meetups', 'posts_per_page' => -1, 'meta_key' => 'date', 'orderby' => 'meta_value_num', 'order' => 'ASC', 'meta_query' => array( array( 'key' => 'date', 'compare' => '>=', 'value' => $today )) )); foreach ($myposts as $post) : setup_postdata($post); // The loop! Output stuff! endforeach; wp_reset_postdata(); ?>
La salida de campos personalizados es muy fácil con Campos personalizados avanzados. Te da una función que puedes usar así, solo nombra el campo:
Simplemente colocamos ese tipo de salida en el HTML existente que ya estábamos usando en esta nueva plantilla. Luego ejecutamos otro ciclo, solo con comparación de fecha inversa, para las reuniones pasadas.
Nada enormemente revelador aquí, simplemente me emociono con este tipo de cosas porque:
- Se siente muy productivo, para una cantidad tan pequeña de trabajo (lo hice mientras estaba acostado en el sofá una noche).
- Puedo hacerlo sin necesidad de molestar al equipo para que desarrolle algo elegante, puedo usar mis habilidades de desarrollador de front-end para hacerlo. (Considero que jugar con los temas de WordPress y la funcionalidad básica es una habilidad de front-end).
Y, por supuesto, WordPress no es necesario para esto. Estoy seguro de que es posible en cualquier CMS. Eso es lo que son los CMS. Simplemente me gusta y conozco mejor WordPress.