Recientemente, en varios de mis proyectos, me he visto en la necesidad de crear tipos de entradas personalizadas para WordPress. Es una tarea un tanto rutinaria, pero que puede aportar mucha funcionalidad y velocidad a la gestión de datos específicos en WordPress. Así que en vez de apuntar los pasos en mi cuaderno garabateado, lo escribo aquí por si le sirve de ayuda a alguien más.

¿Por qué un Custom Post Type?

Imaginémonos esta situación: En nuestro sitio de WordPress queremos que los usuarios puedan visualizar un directorio de gatos y puedan acceder a sus fichas. Efectivamente, podemos crear una entrada con los datos de un gato y, una vez diseñada, duplicarla y cambiar los valores para el siguiente. Así sucesivamente. Hasta que un día es necesario hacer un cambio en el diseño y toca modificar 500 entradas de gatos. Esta metodología sería entonces poco eficiente.

Cuando nos encontramos con la necesidad de manejar un tipo de entrada que tendrá sus datos específicos además de la foto y la descripción (edad, sexo, color, carácter) y además tendrá un diseño claramente diferenciado de una entrada de blog corriente, una opción a tener en cuenta es la creación de un Custom Post Type.

Preparación del ejemplo

Lo que vamos a conseguir con este artículo es crear una sección “Gatos” en el menú de administración de WordPress y conseguir visualizarlo.

Creación del plugin

Lo primero que vamos a hacer va a ser crear un plugin para que al activarlo nos permita incluir nuestra nueva funcionalidad. En la carpeta /wp-content/plugins crearé una carpeta llamada gatospcrupert. Y dentro de esta carpeta, crearé el fichero gatospcrupert.php que contendrá mi plugin.

El primer paso es indicar los datos del plugin al comienzo del fichero gatospcrupert.php

Sólo con este paso, ya debería aparecer en la sección Plugins de la administración de WordPress para ser activado, así que lo activamos.

Creamos el Post Type GATOS

Ahora que tenemos nuestro plugin, vamos a añadir el Custom Post Type. Para ello en el fichero gatospcrupert.php vamos a añadir el siguiente código.

En el hook “init” enlazamos la función post_type_gatos, que por un lado registra el post type con sus etiquetas, mediante el método register_post_type y por otro registrar la taxonomía, mediante el método register_taxonomy.

Con este código ya deberíamos tener disponible la sección Gatos:

Por último, en el hook de activación del plugin, habría que añadir una llamada al método flush_rewrite_rules() para que se creen las url www.dominio.com/gatos/rupert

Con este artículo hemos visto cómo crear un Post Type personalizado. En un siguiente artículo veremos cómo añadirle campos personalizados.

¡Hasta la próxima!

Rupert.