WordPress es un CMS (Content Management System ) maravilloso, en la actualidad un gran porciento de los sitios web están construidos en esta plataforma. Su fácil manejo y baja curva de aprendizaje hacen que los usuarios se decanten por esta plataforma. Pero surge siempre la pregunta de como sacarle el mayor provecho a WordPress, pues este post estará dirigido a una parte importante de esta tecnología, hablaremos de los CPT (Custom Post Type).

¿Qué son los Custom Post Type?

Los Custom Post Type o los Tipos de Entradas Personalizadas en WordPress son simplemente eso, tipos de entradas. Sabemos que WordPress define por defecto dos tipos de entradas importantes, post y page(entrada y página), y estas nos sirven para crear entadas (posts) en nuestro blog, o para crear las páginas (page) de nuestra web. Podemos definir un conjunto de posts para nuestro blog y ellos estarán definidos bajo un ciertas categorías que clasificarán el contenido.

¿Para qué necesitamos los Custom Post Type?

La pregunta mágica sería esta, ¿De qué nos sirve esto? Pues es muy fácil, la verdad cuando WordPress surge fue pensando para crear blogs, o sea tener un conjunto de entradas bajo una cierta cantidad de categorías. Pero en la actualidad esta tecnología se utiliza para cualquier tipo de proyecto, como por ejemplo: comercio electrónico, una web de libros e incluso más. Como logran crear todos tipo de contenido, pues es igual de simple, con los Custom Post Type. Si queremos que nuestra web tenga un Portafolio, que muestre nuestros trabajos, solo debemos crear un Custom Post Type  para ello.

¿Comó crear un Custom Post Type en WordPress?

Existes soluciones rápidas como plugins que realizan esta tarea, por ejemplo Custom Post Type UI . Pero siempre defiendo la idea de no utilizar complementos para todo, es por ello que les dejo algunos pasos de como crearlos manualmente.

Recuerden siempre que el código debe estar en el archivo functions.php en su tema o el tema hijo.

Paso 1

El primer paso es definir una función, en mi caso se llamará wr_portfolio_cpt, para evitar colisiones con otro código siempre es importante definir los nombres de la funciones con prefijos o sufijos, mi tema se llama Web Ready por eso mi prefijo es wr, y el sufijo cpt haciendo referencia a lo que define la función, en este caso Custom Post Type

function wr_portfolio_cpt(){
     $labels = array(
         'name' => 'Portfolio',
         'singular_name' => 'Portfolio',
         'add_new' => 'Add Items',
         'all_items' => 'All Items',
         'add_new_item' => 'Add item',
         'edit_item' => 'Edit item',
         'new_item' => 'New Item',
         'view_item' => 'View Item',
         'search_item' => 'Search Portfolio',
         'not_found' => 'No items found',
         'not_found_in_trash' => 'No items found in trash',
         'parent_item_colon' => 'Parent Item'
     );

     $args = array(
         'labels' => $labels,
         'public' => true,
         'publicly_queryable' => true,
         'query_var' =>    true,
         'rewrite' => true,
         'capability_type' => 'post',
         'hierarchical' => false,
         'supports' => array(
             'title',
             'editor',
             'excerpt',
             'thumbnail',
             'revision'
         ),
         'taxonomies' => array('category','post_tag'),
         'menu_icon' => 'https://www.webreadynow.com/wp-content/uploads/2018/10/portfolio.png',
         'menu_position' => 5,
         'exclude_from_search' => false,
         'register_meta_box_cb' => 'wr_add_image_portfolio_metaboxes',
         'show_in_menu' => true,
         'has_archive' => true 
     );


     register_post_type('portfolio',$args);
 }

Está función define dos  variables ($labels, $args) y una función interna (register_post_type).

La variable $labels es un array que define algunas propiedades que sirven para definir etiquetas como: el nombre con que aparecerá el CPT en el menú derecho en WordPress y otras etiquetas que en el momento irás viendo que puedes personalizar.

Muestras para que sirve las propiedades del array $labels

La variable $arg se utiliza como el segundo parámetro de la función register_post_type(), es al igual que $labels un array, y define ya propiedades que son más funcionales como: las posición en el menú izquierdo en WordPress, o si quieres definir un ícono e incluso los elementos que quieres que tenga este CPT.

Paso 2

Definir el hook que creaste en nuevo CPT llamado portfolio.

add_action('init', 'wr_portfolio_cpt);

Nota: Un aspecto importante que van de la mano con CPT son las taxonomías, así que si quieres dominar el tema completo te sugiero este artículo:

Taxonomías en Wordpres ¿Para que sirven? y ¿Cómo se crean?

  Alguna vez nos hemos preguntado como podemos crear nuevas clasificaciones en Wordpress. Por ejemplo podría tener un sitio de películas y q Leer Más

 

Conclusión

Los Custom Post Type son una de las piezas clave del núcleo de WordPress. Convierte a este CMS en una herramienta potente para la creación de sitios web de todas las dimensiones. Su uso provee a esta plataforma una enorme versatilidad, ya que no lo límita solo a blogs, sino a todo tipos de proyectos. En la actualidad está funcionalidad hace que WordPress tenga más seguidores y lo convierte en la tecnología a seguir en estos momentos. Por favor cualquier duda escríbanos o simplemente deje un comentario debajo.

 

Contenido