Una de las características más esperadas de WordPress 3.0 fue la capacidad de agregar sus propios tipos de publicaciones personalizadas a WordPress, lo que le permite mostrar y categorizar diferentes tipos de contenido fuera de los 5 tipos de contenido nativo de WordPress (es decir, publicación, página, archivo adjunto y así sucesivamente). La adición de esta función es un gran paso adelante para hacer de WordPress un CMS completo, que se extiende más allá de su uso normal como plataforma de blogs.
En esta guía, veremos el proceso de creación y uso de su propio tipo de publicación personalizada. Más específicamente, crearemos un tipo de publicación «Evento» para sus eventos y fechas especiales, algo así como un calendario.
¿Qué es un tipo de publicación personalizada?
Si está familiarizado con WordPress, estoy seguro de que ya ha tenido cierta exposición a los tipos de publicaciones de WordPress predeterminados que se utilizan para la creación de contenido: Publicación y Página. Casi todo el contenido de cualquier sitio de WordPress anterior a 3.0 se compone de alguna combinación de publicaciones y páginas.
Las publicaciones se usan generalmente para contenido que se actualiza con frecuencia (publicaciones de blog, por ejemplo), y las páginas generalmente se usan para contenido estático (como la página Acerca de de un sitio).
A menudo, sin embargo, es posible que tenga un tipo de datos más específico que desee incluir en su sitio. Aquí es donde entran los tipos de publicaciones personalizadas.
Vamos a crear un tipo de publicación personalizada que llamaremos «Evento». Este tipo de contenido nos permitirá agregar eventos como cumpleaños, feriados, fechas de conferencias, etc.
Trabajaremos con el tema TwentyTen predeterminado que viene con WordPress 3.0 para que tengamos una base de código uniforme, pero los conceptos y técnicas serán aplicables a cualquier tema.
Crear un tipo de publicación personalizada
Afortunadamente, WordPress hace que sea bastante fácil crear un nuevo tipo de publicación personalizada. Primero veamos el código y luego explicaré cómo funciona:
add_action( 'init', 'create_events' ); function create_events() { $labels = array( 'name' => _x('Events', 'post type general name'), 'singular_name' => _x('Event', 'post type singular name'), 'add_new' => _x('Add New', 'Event'), 'add_new_item' => __('Add New Event'), 'edit_item' => __('Edit Event'), 'new_item' => __('New Event'), 'view_item' => __('View Event'), 'search_items' => __('Search Events'), 'not_found' => __('No Events found'), 'not_found_in_trash' => __('No Events found in Trash'), 'parent_item_colon' => '' ); $supports = array('title', 'editor', 'custom-fields', 'revisions', 'excerpt'); register_post_type( 'event', array( 'labels' => $labels, 'public' => true, 'supports' => $supports ) ); }
El código anterior debe colocarse en el functions.php
archivo de su tema.
Algunas notas sobre el código:
add_action
le dice a WordPress que llame a nuestrocreate_events()
función cuando WordPress se inicializa- los
$labels
array le dice a WordPress cómo mostrar mensajes sobre nuestro tipo de publicación personalizada - los
$supports
array le dice a WordPress lo que admite nuestro tipo de publicación (¿puede tener un extracto? – por ejemplo) register_post_type
en realidad registra nuestro nuevo tipo de publicación con WordPress- los
register_post_type
la función es muy personalizable y tiene muchas más opciones que las que estamos usando actualmente; puede ver todos estos en el Codex de WordPress.
Una vez que agregamos este código a functions.php
, podemos ver nuestro nuevo tipo de publicación en la sección de administración de WordPress.
Sigamos adelante y agreguemos y publiquemos un nuevo evento. Puede publicar un nuevo evento como lo haría con una publicación normal.
Visualización de un tipo de publicación personalizada
Ahora que hemos publicado nuestro evento, podemos verlo como cualquier otra publicación. Si edita su evento y luego hace clic en el botón «Ver evento», verá que el evento se muestra como cualquier otra publicación.
Sin embargo, la razón por la que normalmente creamos un tipo de publicación personalizada es porque queremos que se vea y actúe de manera diferente a una publicación normal.
Nuevamente, WordPress proporciona un buen mecanismo para personalizar el aspecto de nuestra publicación personalizada. Si ha trabajado en temas de WordPress en el pasado, probablemente sepa que se muestra una sola publicación de blog usando el single.php
archivo de tema. WordPress 3.0 le permite agregar un single-[your_post_type_name].php
para anular cómo se muestra un tipo de publicación personalizada. Observe el formato de este nombre de archivo: single-
seguido del nombre que asignó a su tipo de publicación personalizada.
Para nuestro tipo de evento, cree un single-event.php
archivar y copiar el contenido de single.php
en ello. Para hacerlo simple, solo cambiaremos una línea en single-event.php
para demostrar que realmente está funcionando. Busque la línea que genera el título del evento en single-event.php
; debería tener el siguiente aspecto:
<h1 class="entry-title"><?php the_title(); ?></h1>
Cambiemoslo a:
<h1 class="entry-title">Event: <?php the_title(); ?></h1>
Si regresamos y miramos nuestra página web de eventos ahora, podemos ver que muestra nuestros cambios.
Cualquier otro cambio que realice en single-event.php
será visible al ver un evento.
Listado de nuestro tipo de publicación personalizada
Ahora que hemos visto cómo mostrar uno de nuestros eventos, ¿cómo hacemos para enumerar todos nuestros eventos? Mostrar eventos individuales es útil, pero su funcionalidad es limitada a menos que podamos ver todos nuestros eventos.
Hay un par de formas diferentes de hacer esto, pero desafortunadamente, ninguna de ellas es particularmente sencilla. La forma más común (y la forma en que lo haremos aquí) es mostrar una lista de tipos de publicaciones personalizadas mediante el uso de una plantilla de página personalizada. Este proceso no es demasiado complicado una vez que lo ha hecho un par de veces, pero requiere varios pasos.
Primero, copie el contenido de page.php
a un nuevo archivo llamado page-events.php
.
WordPress le permite crear tantas plantillas diferentes como desee para mostrar páginas de diferentes maneras. Usaremos esta funcionalidad para crear una plantilla para mostrar eventos.
En page-events.php
, agregue la siguiente línea en algún lugar del comentario en la parte superior del archivo:
Template Name: Events Template
Esta línea le dice a WordPress que el page-events.php
El archivo es una plantilla de página y se denomina «Plantilla de eventos». La parte superior de page-events.php
ahora debería verse algo como esto:
<?php /** * Template Name: Events Template * @package WordPress * @subpackage Twenty_Ten * @since Twenty Ten 1.0 */ get_header(); ?>
A continuación, use el siguiente código justo antes del comienzo del bucle de WordPress:
<?php query_posts(array('post_type'=>'event')); ?>
The Loop es la línea que se ve así:
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
El código anterior le dice a WordPress que busque todo el contenido que tenga el tipo de evento y luego lo recorra.
Ahora que tenemos una plantilla de página personalizada que mostrará nuestros eventos, necesitamos crear una página de «Eventos» que los muestre. Para hacerlo, vuelva a iniciar sesión en la sección de administración de WordPress, cree una nueva página con el título de Eventos y luego seleccione la «Plantilla de eventos» para el atributo de página Plantilla.
Ahora que ha publicado la página de Eventos usando la Plantilla de Eventos, puede volver a su sitio y debería ver la página de Eventos. Dependiendo de su tema, es posible que deba actualizar su navegación para incluir esta nueva página. Si navegamos a la página de Eventos, ¡vemos que nuestros eventos ahora se enumeran!
Dado que nuestra plantilla de página personalizada enumera todos los eventos, podemos editar esa plantilla si queremos cambiar el aspecto de la lista. Podríamos, por ejemplo, agregar un ícono de calendario al lado de cada evento, mostrar solo el título del evento o personalizar la página de la manera que queramos, simplemente editando el page-events.php
expediente.
Resumen
Si ha llegado hasta aquí, ahora sabe cómo crear, diseñar, mostrar y enumerar tipos de publicaciones personalizadas en WordPress. Acabamos de arañar la superficie de lo que puede hacer con los tipos de publicaciones personalizadas, pero estoy seguro de que puede ver que son muy útiles para ampliar las capacidades de CMS de WordPress.
Si editar archivos de tema y codificar es demasiado intimidante para usted, hay un par de complementos de WordPress que le permiten lograr gran parte de lo anterior (consulte IU de tipo de publicación personalizada y Herramientas de taxonomías y publicaciones personalizadas de GD, entre otras).