Crear un Custom Post Type en Genesis Framework

Veamos como crear un Custom Post Type con código en Genesis Framework. Con soporte para Genesis, por supuesto.

En ocasiones, por organización interna, debido a que los contenidos de una web son muy distintos unos de otros, necesitamos crear un nuevo Custom Post Type (CPT) o contenido personalizado.

Podemos usar un plugin, pero nos limitará a la ahora de personalizarlo y ralentizará la carga de la web. Los plugins suelen traer más código del necesario, además de las continuas comprobaciones que hace WordPress para comprobar si hay o no actualizaciones de ese plugin.

Mi máxima es que si puedes hacerlo por código, ¿Para que usar un plugin?

Cuando usar un CPT o categorías

Siempre que planifico una web me surge la misma pregunta. ¿El contenido lo diferencio en categorías o por CPT’s?

Siempre tengo en cuenta dos cosas a la hora de decidirme. Primero que tan diferentes son los contenidos. Por que, por ejemplo, no es lo mismo un blog sobre smatphones con artículos sobre noticias, revisiones y tutoriales, que tener un blog de cocina con recetas, videotutoriales y revisiones de electrodomesticos.

En el primer caso yo, personalemnte lo haría a base de categorías. Porque el contenido no difiere mucho uno del otro. En cambio en el segundo lo haría por CPT’s, dado que las recetas necesitarán algún custom field y los video turoriales seguramente tendrán su propio formato.

Un plugin personalizado

Esta es una de esa ocasiones en las que el código no debe ir en el functions.php, sino que deberíamos crear un plugin personalizado. ¿Pero Luis, no acabas de decir que un plugin ralentizará la carga de la web? Si, por varios motivos. Pero este tiene el código justo, minimizado a lo que necesitamos para crear ese CPT.

Además, para evitar esa comprobación de actualizaciones (o evitar que alguien lo desactive), podemos ( y debemos) crear un Must Used Plugin, o mu-plugin. Son plugins de uso obligatorio con características especiales que nos ayudan en el desarrollo. Te dejo un enlace de Ayuda WordPress donde lo explican con detalle.

El snippet de código que dejo a continuación ya está listo para usar como plugin. Ya bien como plugin normal o como mu-plugin.

Bastará con pegarlo en un archivo con extensión «.php» e incluirlo en una subcarpeta dentro de la carpeta de plugins de nuestro WordPress. En caso de usarlo como mu-lugin, deberás de prescindir de la subcarpeta.

Yo lo he llamado cpt-noticias.php y va dentro de la carpeta custom-cpt-noticas. Esta carpeta la subiremos a wp-content/plugins/ y a partir de ahí podrás ir a tu lista de plugins de tu WordPress y activarlo.

El código

Ahora el código.

Este contenido está sólo disponible para los suscriptores.

Puedes identificarte aquí o bien registrate en este enlace.

Como podrás ver en la cabecera del plugin, he incluido algunos datos. Edítalos y adáptalos a tu conveniencia. Dependiendo a lo que dediques el CPT.

He incluido el soporte para Genesis en la línea 40. Tanto para SEO como para Genesis scripts, Genesis Layouts y todo lo que Genesis ofrece.

Cambios y conclusión

Yo he hecho un CPT de Noticias, pero puedes cambiarlo por lo que necesites. Portfolio, recetas, libros, peliculas, etc… Sustituye donde ponga Noticia o Noticias por el nombre que quieras. Asegúrate de que respetas, mayúsculas, minúsculas, plurales y singulares.

Lo mismo digo con el icono. Puedes editar el nombre y añadir el que mejor venga a tu nuevo CPT.

Ya tienes el código para crear un CPT. Ya no hay excusa para seguir usando plugins pesados, pudiendo crear el tuyo personalizado. Además tienes la libertad de que puedes traducir las cadenas como necesite el cliente.

Así que manos a la obra! Y si necesitas ayuda con el código o tienes alguna duda, deja un comentario abajo :).

El soporte en comentarios está sólo disponible para los suscriptores.

Puedes identificarte aquí o bien registrate en este enlace.

¿Olvidaste tu contraseña?