Una de las ventajas de usar WordPress es su gran flexibilidad. No es sólo para mensajes y páginas. Los tipos de mensajes personalizados pueden extender las funciones principales a prácticamente cualquier cosa.
Echemos un vistazo hoy a lo que podrías hacer con los tipos de mensajes personalizados. Así como un ejemplo práctico y rápido de cómo crear un listado de eventos utilizando un tipo de mensaje personalizado llamado Evento.
Nota: Este tutorial debe ser considerado sólo con fines educativos, para que puedas aprender el código utilizado para crear tipos de mensajes personalizados. Si realmente quieres un gran plugin de listado de eventos para tu sitio de WordPress, prueba el Calendario de Eventos, que está bien desarrollado y es gratuito.
¿Qué son los tipos de mensajes personalizados en WordPress?
Típicamente, un sitio de WordPress consiste en dos tipos de contenido: entradas de blog con fecha y páginas estáticas. La mayoría de nosotros que hemos creado un blog de WordPress estamos familiarizados con el hecho de que las páginas deben ser utilizadas para cosas como «Acerca de mí» o «Información de contacto». Mientras que las entradas regulares van a tu blog.
Pero más allá de eso, ¿qué pasa si quieres añadir otro tipo de contenido especial que no encaje realmente en el orden cronológico del blog y que ciertamente no sea estático? Ahí es donde entran en juego los tipos de postes personalizados.
Una petición bastante común para los sitios de clubes o grupos es tener algún tipo de calendario de eventos. Una solución que se podría aplicar es la creación de una categoría de eventos separada. El problema con esto es que se mostrarán en la línea de tiempo del blog principal. Y realmente deberíamos separar los dos conceptos por completo.
Para ello, vamos a crear un nuevo tipo de mensaje llamado evento, que tendrá su propia sección separada de la interfaz de administración.
Cómo crear un tipo de mensaje personalizado en WordPress
Lo haremos ajustando los archivos de tema directamente. Podrías lograr el mismo efecto a través de un plugin. Pero para demostrar el concepto y la práctica es más fácil escribirlos directamente. Si no se siente cómodo haciendo esto, considera la posibilidad de usar el plugin Mis funciones personalizadas, que te permite añadir código de forma no destructiva.
Abra el archivo functions.php de tu tema, almacenado en la carpeta theme dentro de wp-content/themes; o utiliza el plugin My Custom Functions, que encontrarás en Settings > PHP Inserter. Al final del archivo, agregue este código:
Asegúrate de hacer esto antes de cerrar la etiqueta php (?>), si hay una en su archivo functions.php.
Tardará un rato en leer el código. Se trata de declarar algunas propiedades (como etiquetas para la interfaz), y cómo se deben manejar las URLs (reescrituras). Así como las características que soporta este tipo de mensaje. Puedes, por ejemplo, añadir un campo personalizado a tu tipo de mensaje personalizado con la propiedad supports.
En este caso, hemos declarado que nuestro tipo de evento es compatible con las miniaturas, un editor de contenido para la descripción del evento, un título del evento y campos personalizados. También hemos añadido has_archive, para que al navegar a la página de eventos se muestre un archivo de todos los eventos, similar a un blog.
Eso es todo, ahora si guardas tu tema y recargas tu blog. Asumiendo que no tienes ningún error. Deberías ver una nueva sección de eventos en tu barra lateral de administración.
Añade algunos eventos de ejemplo ahora
Luego, dado que se trata de un evento, crea un campo personalizado llamado fecha para indicar cuándo ocurrirá el evento. Utiliza el formato mm/dd/aaaaa.
Ten en cuenta que necesitamos utilizar campos personalizados para especificar la fecha real del evento en lugar de la fecha de la publicación, ya que la fecha de la publicación representa el momento en que se publica el aviso. Dado que presumiblemente estará agregando eventos que ocurrirán en el futuro, establecer la fecha de publicación en la fecha real del evento sería inútil.
Si intentas ver el evento en este punto, es posible que se produzca un error 404. Esto se debe a que WordPress necesita regenerar su estructura de URL de Permalink para tener en cuenta este nuevo tipo de mensaje. Ve a la página Configuración > Enlaces permanentes y vuelva a pulsar Guardar.
Ahora deberías poder ver la entrada individual del evento. Ten en cuenta que la primera parte de la URL, después de tu nombre de dominio, es /events/. Elegimos esto en esta línea de código:
Personalizar la página de listado de eventos
Ahora que tienes todos estos fantásticos eventos en tu blog, sería bueno que los incluyeras en alguna parte. Para ello, crearemos una plantilla de página especial. Para que pueda añadirla a tu menú habitual junto con Acerca de o Contacto.
Como ya hemos especificado que el tipo de entrada de Evento debe tener un archivo. Puedes seguir adelante y ver cuál es el valor por defecto visitando /events/. En el tema estándar Veintisiete en mi sitio de pruebas, tengo esto:
Personalizar esta salida va a depender del tema que estés usando, y cubrir todo el sistema de plantillas de WordPress está fuera del alcance de este artículo. Sin embargo, por el bien de este tutorial, asumo que estás usando Veintisiete.
Comienzapor crear una copia de archive.php y renómbrala a archive-events.php. Esta es una convención de nomenclatura estándar que significa que WordPress utilizará automáticamente esta plantilla para mostrar el archivo para el tipo de publicación de eventos.
Tras examinar el expediente, los veintisiete autores han proporcionado un mecanismo de post formato, que es demasiado complejo para nuestras necesidades:
Nota: Se recomienda un tema ya que cualquier actualización del tema original sobrescribirá los cambios. Este artículo de soporte de WordPress describe el proceso de creación de un tema infantil para Twenty-Seventeen. Para ser breve, voy a trabajar en el tema original y no me importa si mi trabajo se pierde en una actualización posterior.
Corta todo el bloque y pégalo en el siguiente. Esto es sólo una copia simplificada de lo que hay en esas plantillas de formato de post.
Si vuelve a guardar y previsualizar la página Eventos, notarás que ahora tiene fechas. Pero están equivocados. Actualmente muestran la fecha de publicación en lugar de la fecha del evento. Como último paso, cambiemos esa fecha a la fecha real en que se llevará a cabo el evento. Encuentra el bit que genera el tiempo, twenty_seventeen_time_link(), y sustitúyelo por el siguiente.
Esto es para obtener la fecha del campo post meta que establecimos, y luego usar la función PHP date() para formatearla a algo más legible.
¿Próximos pasos?
Si no estás satisfecho con tu alojamiento web actual, te recomendamos encarecidamente que utilices un alojamiento WordPress gestionado como WP Engine.
A continuación, ten en cuenta que cuando creamos el tipo de mensaje de evento, ya codificamos el soporte para las miniaturas destacadas.
¿Tienes alguna pregunta o problema relacionado con el tema del artículo? Queremos ayudarte.
Deja un comentario con tu problema o pregunta. Leemos y respondemos todos los comentarios, aunque a veces podamos tardar un poco debido al volumen que recibimos. Además, si tu consulta inspira la escritura de un artículo, te notificaremos por email cuando lo publiquemos.
*Moderamos los comentarios para evitar spam.
¡Gracias por enriquecer nuestra comunidad con tu participación!