1. Code
  2. WordPress
  3. Theme Development

Usos Innovadores de los Tipos de Entradas y Taxonomías en WordPress

Con el lanzamiento de Wordpress 3.0, se introdujeron dos importantes mejoras en la forma de organizar y mostrar el contenido: tipos de entradas y taxonomías. Estos dos avances mejoran papel de Wordpress como versátil sistema de gestión de contenidos, y continúa demostrando que WP no es sólo una plataforma para crear blogs. Cuando se lance la versión 3.1 con los formatos de entrada, será imprescindible que entiendas cómo utilizar y aplicar los tipos de entradas y taxonomías.
Scroll to top

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

Con el lanzamiento de Wordpress 3.0, se introdujeron dos importantes mejoras en la forma de organizar y mostrar el contenido: tipos de entradas y taxonomías. Estos dos avances mejoran papel de Wordpress como versátil sistema de gestión de contenidos, y continúa demostrando que WP no es sólo una plataforma para crear blogs. Cuando se lance la versión 3.1 con los formatos de entrada, será imprescindible que entiendas cómo utilizar y aplicar los tipos de entradas y taxonomías.

Tutorial now on Wptuts+Tutorial now on Wptuts+Tutorial now on Wptuts+

Lo Que Vamos a Revisar

En este tutorial, voy a guiarte a través de los siguientes aspectos:

  • Resumen de los tipos de entradas y taxonomías en Wordpress 3.0
  • Cómo integrar los tipos de entradas y taxonomías en tus temas
  • Ejemplos en el mundo real de cómo utilizar los tipos de entradas y las taxonomías de manera innovadora en tus proyectos

Cuando hayas completado estos pasos, espero haber impulsado tus proyectos a través del examen de interesantes formas de integrar estos elementos organizativos en WordPress.


Una Rápida Visión de los Tipos de Entradas de WordPress

Cuando piensas en tipos de entradas, la palabra importante a recordar es organización. El tipo de entrada no agrega por sí misma ninguna funcionalidad, pero nos permite organizar mejor los contenidos en Wordpress y crear paneles de administración más específicos al tipo de sitio con el que estemos trabajando.

Aquí tienes algunas cosas importantes que debes recordar cuando trabajes con los tipos de entradas:

  • Cuando creas un nuevo tipo de entrada, un nuevo elemento de navegación de nivel superior aparecerá a la izquierda en tu menú principal de admin. Desde ahí, estarán disponibles todos los editores estándar de entradas y de páginas.
  • La cadena de las URLs tu nuevo tipo de entrada será: https://yoursite.com/{post tipo}/{título}/.
  • Puedes crear páginas de archivo de tipos de entradas de la misma forma que las creas para las categorías, e incluso puedes crear archivos de plantilla especiales creando un documento archivo-{tipo-de-entrada}.php.

"De la misma manera que las entradas se muestran en su propio archivo con archive.php, los tipos de entradas personalizadas usarán archive-{posttype}.php."

Para conocer otro tipo de información relativa a la integración de los tipos de entrada, las consultas de los tipos de entrada y funciones generales, visita el Codex aquí.


Integrar Tipos de Entradas vía Functions.php

Integración de tipos de post es simplemente una cuestión de incluir la función register_post_type. Una vez que haya incluido esto en el archivo functions.php, su menú de navegación debe ir de algo como esto:

our original wordpress menu

a esto:

our new wordpress menu with our post type

Para crear tipos de post personalizados, abrir el archivo functions.php de tu plantilla en un editor y colocar la siguiente función en el archivo:

1
2
function create_post_type() {
3
  register_post_type( 'mysite_reviews',
4
		array(
5
			'labels' => array(
6
				'name' => __( 'Reviews' ),
7
				'singular_name' => __( 'Review' )
8
			),
9
		'public' => true,
10
        'menu_position' => 5,
11
        'rewrite' => array('slug' => 'reviews')
12
		)
13
	);
14
}
15
16
add_action( 'init', 'create_post_type' );

Esto agrega la función create_post_type y registra el tipo de entrada mysite_reviews,

1
2
add_action( 'init', 'create_post_type' );
3
function create_post_type() {
4
	register_post_type( 'mysite_reviews',

Usted puede preguntarse por qué has llamado el mysite_reviews post_type y no sólo Comentarios. Hice el nombre más visible para asegurarse de que mi tipo de post no interferir con nombres de tipos de post personalizados de otros plugins o temas.

Otro recordatorio, los tipos de post personalizados no deben superar 20 caracteres, como es límite de la columna de base de datos.

Aquí tienes un resumen de los parámetros para los tipo de entrada más importante que he destacado arriba:

  • labels, Wordpress nos permite etiquetar todo, desde el nombre del tipo de post a la etiqueta para agregar nuevos puestos. Una lista completa puede encontrarse aquí. En la función anterior, yo con la etiqueta el nombre del tipo de poste y su singular nombre.
  • public - si está establecido en true
  • menu_position - configurar esto a 5, que pondrá el tipo de puesto directamente debajo de "Posts". Las otras ubicaciones son las siguientes: null (abajo comentarios), 0 (por debajo de la Media), 20 (por debajo de páginas), 60 (por debajo del primer separador) y 100 (por debajo del segundo separador)
  • escribir - para que nuestro actual término "mysite_reviews" no consigue poner en la URL, fijamos el slug a "Comentarios" que será mucho mejor a largo plazo para nuestros visitantes, enlaces y SEO.

Para Obtener Más Información

Aquí encontrarás un listado completo de los argumentos para los parámetros de los tipos de entradas.


Mostrar Tipos de Entradas en los Temas Wordpress

Dado que los tipos de entrada en Wordpress son simplemente una extensión del sistema de clasificación existente, que se muestran en un tema de forma muy parecida a lo que ya está en funcionando en él. Existen en la actualidad tres métodos principales para mostrar los tipos de entradas personalizados en tus temas:

  • Consulta de Entrada
  • Plantilla de Único de Entrada
  • Plantilla de Archivo

Mostrarla Mediante una Consulta de Entrada

Para mostrar el nuevo poste tipo mysite_reviews, tienes que abrir el archivo de plantilla que desea mostrar en (en mi caso, suele crear un home.php personalizadas para las plantillas) y escriba el siguiente código:

1
$args = array( 'post_type' => 'mysite_reviews', 'posts_per_page' => 10 );
2
$loop = new WP_Query( $args );
3
while ( $loop->have_posts() ) : $loop->the_post();
4
	the_title();
5
	echo '<div class="entry-content">';
6
	the_excerpt();
7
	echo '</div>';
8
endwhile;

Esto simplemente crea un nuevo bucle de Wordpress que muestra el título y el extracto de las 10 entradas más recientes en el tipo de mensaje mysite_reviews.

Visualización a Través del Criterio de Plantilla Única

Como personalizar la forma posts individuales se visualizan mediante un fichero de single.php, puede personalizar la forma que se visualizan las entradas de tipo post individuales. La forma más sencilla de hacer esto es crear un duplicado del archivo single.php de tu tema y cámbiele el nombre a solo-{posttypename} .php. Desde allí, puede personalizar ese archivo a tus especificaciones. Utilizando el ejemplo de arriba, necesitamos una plantilla único llamada solo-mysite_reviews.php.

Muestra de archivo de plantilla

Mientras que esta característica no estará disponible hasta que WP 3.1, tipos de post puede archivo-estilo que se muestra mediante la creación de un archivo en su tema llamado archivo-{posttypename} .php. Así, si estábamos creando un archivo para el tipo de post, sería crear una plantilla de archivo nombrada de archivo mysite_reviews.php y colocarlo dentro de nuestra carpeta de la plantilla.

Con plantillas de tipo de mensaje personalizado, creadores de tema personalizado pueden crear más fácilmente sitios de suscripción y membresía al restringir el contenido de estos mensajes específicos y las páginas a grupos de usuarios especificados.


Una visión rápida de las taxonomías de WP

No entraré en mucho detalle aquí como Paul Kaiser ya ha escrito un gran Resumen de las taxonomías y el código que se dedica a implementar la función (ver el tutorial aquí). La palabra clave para recordar al pensar en las taxonomías es clasificación. Son similares a etiquetas, pero permiten más profunda, más específicas del contenido de la clasificación.

En verdad, son una manera extremadamente de gran alcance para agrupar varios objetos en todo tipo de formas.

Por ejemplo, decir que yo uso que los comentarios post tipo desde arriba. Porque definitivamente quiero clasificar tipo de entrada amplio, puedo crear taxonomías como:

  • Valoraciones de Películas
  • Valoraciones de Libros
  • Reseñas de Productos

Con las taxonomías personalizadas, podría incluso clasificar de forma más precisa las taxonomías anteriores. Podría continuar especificando los géneros de las películas, los autores de los libros y los mercados de los productos. De nuevo, junto con los tipos de entradas personalizadas, estas aumentan considerablemente las capacidades de WordPress como gestor de contenidos.


Integrar Taxonomías a Través de Functions.php

En general, las taxonomías son bastante fáciles de implementar en tu archivo functions.php. Recuerda, puede establecer que sean jerárquicas o que funcionen como las etiquetas, así que cuanto más complejidad desees alcanzar, mayor será la dificultad. Bien, aquí tienes un rápido resumen sobre cómo incorporarlas en el tema.

Una vez más, abre el archivo functions.php e inserta el código siguiente:

1
2
    function movie_taxonomy() {
3
       register_taxonomy(
4
        'movie_review',
5
        'mysite_reviews',
6
        array(
7
            'hierarchical' => true,
8
            'label' => 'Movie Review',
9
            'query_var' => true,
10
            'rewrite' => array('slug' => 'movie-reviews')
11
        )
12
    );
13
    }
14
    
15
    add_action( 'init', 'movie_taxonomy' );

Para esto, primero damos a la taxonomía un nombre formal ("movie_review"), y lo colocamos en el tipo de entrada "mysite_reviews", que hemos creado anteriormente.

1
2
function movie_taxonomy() {
3
   register_taxonomy(
4
	'movie_review',
5
	'mysite_reviews',

Después establecemos estos valores:

1
2
	array(
3
            'hierarchical' => true,
4
            'label' => 'Movie Review',
5
            'query_var' => true,
6
            'rewrite' => array('slug' => 'movie-reviews')
7
        )

Esto proporciona los siguientes argumentos:

  • hierarchical - Cuando se establece como "true", la taxonomía actúa más como una categoría. Puede haber taxonomías padres y taxonomías anidadas que permitan mayores niveles en la clasificación. Cuando se establece "false", actúan del mismo modo que las etiquetas.
  • label - como con los tipos de post anteriores, esto hace referencia a la etiqueta que mostrará la taxonomía públicamente.
  • query_var - cuando se establece en "true", la taxonomía se convierte en un elemento susceptible de ser consultado.
  • rewrite - permite la reescritura de las URLs. Ahora las entradas pertenecientes a esta taxonomía se mostrarán en la siguiente forma http://mysite.com/movie-reviews/{post título}/.

El resultado final dentro de nuestra navegación en admin debería ser similar a esto:

New Wordpress taxonomy in admin dashboard navigation

Y aún más, podríamos profundizar en la interfaz, agregando más categorías de clasificación y estructura. La interfaz es similar a la interfaz de categorías con la que ya estás familiarizado.

Taxonomy user interface

Desde esta interfaz, puedes editar los slugs pertenecientes a las distintas categorías de tu taxonomía, crear nuevas categorías así como determinar cuales son las categorías primarias y secundarias.

Para Obtener Más Información

Aquí encontrarás una lista completa de los argumentos para los parámetros de las taxonomías.


Mostrar Taxonomías en los Temas de Wordpress

Actualmente existen tres principales formas de mostrar tipos de entradas personalizadas en tus temas:

  • Nube de Taxonomías
  • Consultas de Taxonomías Personalizadas
  • Listado de Taxonomías Personalizadas

Nube de Taxonomías

Así como existen nubes para las etiquetas, existen nubes para las taxonomías. Para que resulte sencillo, tanto las etiquetas como las nubes usan la función wp_tag_cloud. Con el objetivo de mostrar un array de categorías de la taxonomía en forma de nube, podríamos utilizar el siguiente código:

1
 <?php 
2
        wp_tag_cloud( array( 'taxonomy' => 'taxonomy_name_1','taxonomy_name_2' ) ); 
3
?>

Para obtener más información acerca de la función y sus argumentos de parámetro, visita el codex.

Consultas Personalizadas de Taxonomías

Las taxonomías pueden incluirse también en las consultas personalizadas al igual que ocurre con los tipos de entradas anteriores. Por ejemplo, para mostrar el contenido de la taxonomía movie_genre, tenemos que insertar en nuestro archivo de plantilla el siguiente código:

1
    $args = array(
2
	'tax_query' => array(
3
		'taxonomy' => 'movie_genre',
4
		'field' => 'slug',
5
        'terms' => 'comedy'
6
		)
7
);
8
query_posts( $args );

En primer lugar, utilizamos el argumento tax_query de forma que podamos pasar parámetros que nos permitan consultar por un slug o por términos y devolver resultados de consulta más precisos.  En este ejemplo, mostramos entradas etiquetadas como "comedia" dentro de la taxonomía personalizada "movie_genre". Una vez más, tal y como hicimos con los tipos de entradas, podemos limitar el número de entradas que nos devolverá esta consulta.

Listas de Taxonomía Personalizadas

Para mostrar una lista delimitada por comas de entradas por taxonomía, simplemente tenemos que poner lo siguiente en algún lugar en el circuito:

1
    
2
    	<?php the_terms( $post->ID, '{taxonomy name}', '{Displayed Title}: ', ', ', ' ' ); ?>

Hay otras opciones de visualización para esta lista, y los parámetros se pueden encontrar aquí.


Uso de taxonomías y tipos de Post en su próximo proyecto

Ahora que se disponemos de tuercas y tornillos, creo que "¿por qué preocuparme por estas cosas?" es una pregunta muy justa. Las posibilidades de tipos de post y taxonomías, especialmente trabajando con clientes que son a menudo demasiado ocupados para gestionar las complejidades de un sitio, es interminable. Esto, en mi opinión, ahorra tiempo en crear nuevas funciones de administración y actualización de plugins y abre las puertas a nuevas posibilidades con mucho menos trabajo (y codificación) implicado.

A continuación se presentan algunas ideas que tenía acerca de cómo integrar en el trabajo real:

1. revisar sitios

En primer lugar, un sitio de revisión podría beneficiarse de las opciones de plantillas personalizadas mencionadas (single y archivo)

Aquí están algunos tipos de post y taxonomías que se podrían implementar en un sitio de revisión:

  • Post Type - Valoraciones de Películas
  • Taxonomies - Género, Actor, Director
  • Post Type - Reseñas de Libros
  • Taxonomies - Género, Autor, Editor
  • Post Type - Reseñas de Productos
  • Taxonomies - Categorías de Producto, Precio

2. Sitios de Directorios Bienes Raíces

Si bien es cierto que existen algunas buenas plantillas para webs de inmobiliarias, los tipos de entradas y taxonomías permiten a aquellos que son creativos crear plantillas personalizadas que pueden ser mantenidas con facilidad tanto por los clientes como por webmasters. Aquí tienes algunas ideas que podrías emplear en tu próximo proyecto:

  • Post Type - Directorios
  • Taxonomies - Área, Agente, Precio, Habitaciones
  • Post Type - Agentes

3. Listados de Eventos

Una cosa de la que realmente carece de Wordpress (en mi opinión) es un buen sistema de gestión de eventos. Los tipos de entradas y taxonomías podrían fácilmente ocuparse de ofrecer un sistema para clasificar eventos mensuales por ubicación, día o cualquier otro sistema que se te ocurra.

4. Sitios de Suscripción

Con la creación de un nuevo tipo de entrada y plantillas, podrías crear una categoría premium personalizada para tu blog o sitio web e integrar una pasarela de pago y así crear un sitio propio de membresías.

5. E-commerce

Al crear una entrada de producto y una plantilla, podrías añadir y mostrar con facilidad tus productos que están a la venta en tu sitio. Además, las taxonomías permitirían organizar fácilmente los productos.


¿Hacia Dónde Vamos Desde Aquí?

Espero que este tutorial haya explicado los tipos de entradas y taxonomías en Wordpress 3.0, y por qué son un valioso recurso a aplicar en tus proyectos. Sé que hay muchos defensores del empleo de plugins (yo mismo soy un autor de plugin), pero espero haber mostrado que la implementación de estas soluciones es una tarea muy sencilla y que además te ahorrará tiempo tanto a ti como a tu cliente a largo plazo.

La lista de ideas mostradas anteriormente es un pequeño ejemplo de las aplicaciones, así que me encantaría conocer cómo las implementas tú en tus proyectos o qué otros usos les das tú que yo no haya mencionado.

¡Muchas gracias por leerme!