Este artículo tiene más de 2 años. Si contiene información técnica es posible que no se ajuste a las últimas versiones.

Estrategia de contenidos en WordPress (II)

Como se comentaba en la primera parte de esta guía sobre estrategia de contenidos, WordPress es un gestor de contenidos que procede una estructura de blog. Eso implica que al instalarlo nos ofrezca con las funcionalidades propias de un blog y para conseguir un auténtico gestor de contenidos tengamos que utilizar las herramientas que pone WordPress a nuestra disposición para organizar el contenido. Conviene tener muy presente lo de la estructura tipo blog de WordPress porque ayuda a entender muchos conceptos que se irán desarrollando poco a poco.

Las herramientas que disponemos para organizar el contenido de nuestro son:

Con estas herramientas que nos ofrece WordPress podemos organizar casi cualquier solución, consiguiendo que nuestro contenido se adapte a nuestras necesidades. Hay que destacar que las cuatro primeras son las que vienen por defecto y las más apropiadas para construir un sitio web tipo blog. El resto son las que permiten extender la funcionalidad de WordPress y construir sitios web más complejos y adaptados a casi cualquier necesidad. Veamos con detenimiento en qué consisten cada una de ellas.

Las entradas, el tipo más flexible de contenido en WordPress

Una entrada vendría a constituir una publicación dentro de nuestro sitio web. Si hacemos la comparación con nuestro blog, una entrada es sencillamente eso: una publicación en nuestro blog. Una entrada se caracteriza básicamente por tener un título, una fecha de publicación, un autor o varios, un contenido y una organización dentro del blog en categorías y etiquetas. Si pensamos en la estructura típica de un blog tenemos que existe una cronología con un orden inverso. Esto es, las entradas más recientes aparecen las primeras y las más antiguas las últimas. Para facilitar la búsqueda se agrupan las entradas en categorías y se describen en etiquetas (las veremos más adelante) y el contenido suele ser un campo libre donde se escribe y se combina tanto texto como multimedia.

Las entradas son publicaciones que se caracterizan por un contenido dinámico y la posibilidad de ser organizado en categorías y etiquetas

Una entrada tendría por tanto como características fundamentales:

  • Es un contenido dinámico que puede ser ampliado, mejorado y complementado. Piensa que una entrada de blog puede ser siempre actualizada y comentada por otros usuarios.
  • Es un contenido que puede organizarse en categorías y describirse con etiquetas.
  • Es un contenido que puede relacionarse con otro contenido similar. Esto es la típica funcionalidad de “Entradas relacionadas” o “también te puede interesar”. Gracias a las categorías y etiquetas podemos agrupar el contenido para relacionarlo entre sí.

Descripción entradas en WordPress

Las páginas, dirigidas a un contenido estático

Junto con las entradas, las páginas son la otra opción que utilizamos para construir nuestras páginas web hechas con WordPress. La diferencia fundamental entre entradas y páginas es que las primeras se dirigen a un contenido dinámico y que como se indicaba en el apartado anterior es susceptible de ampliaciones, comentarios y agrupación. Las páginas se utilizan fundamentalmente para contenido estático. Una forma rápida de verlo es a través de un ejemplo. Una página de contacto no es susceptible de ser comentada o agrupada en categorías. Es sólo un apartado de la página web, aunque sea importante. No necesita ser conectado con otro contenido similar, más allá de los enlaces internos en nuestro sitio web. De esta forma las páginas, sin ser lo mismo, tienen una función que se corresponde con las páginas estáticas de un sitio web.

A diferencia de las entradas, las páginas no se agrupan por categorías o por etiquetas. Pueden tener una jerarquía por motivos de organización y también pueden ser descritas gracias a campos personalizados. También es posible, con algo de trabajo extra, enlazar páginas con otras páginas o entradas, pero en principio habría que considerar a las páginas como contenido estático.

A pesar de no ser tan extensibles las páginas cuentan con muchas posibilidades para mostrar contenido dentro de WordPress

Una funcionalidad única de las páginas es que pueden usar diferentes plantillas, con lo que es posible contar con diferentes presentaciones para el contenido mostrado. En resumen, las páginas se utilizan para todo lo que no implique una entrada sujeta a un orden temporal o de agrupación.

La flexibilidad de las entradas y su capacidad de ser descritas, permite ampliar su funcionalidad para reflejar el tipo de contenido que necesitamos. A fin de cuentas, no existen muchas diferencias entre publicar un artículo y publicar la ficha de un producto o un servicio. Actualmente un sitio web construido con WordPress utiliza las entradas exclusivamente para una sección de blog o noticias. La adaptación del contenido de un sitio web se hace extendiendo la funcionalidad nativa de las entradas, gracias a las entradas personalizadas (Custom Post Type).

Descripción páginas en WordPress

Categorías para agrupar las entradas

Las categorías son la principal funcionalidad dentro de WordPress para organizar el contenido de nuestro sitio. Una categoría sirve para agrupar las entradas de nuestro sitio web y por tanto facilitar entre otras cosas, la búsqueda del contenido. Dentro de WordPress las categorías tienen mucho peso y permiten organizar con bastante precisión el contenido de nuestro sitio web. Además las categorías también pueden ser divididas en jerarquía, permitiendo una adaptación muy precisa del contenido.

La funcionalidad de taxonomía que nos proporciona WordPress nos permite agrupar y organizar el contenido.

Junto con las etiquetas, las categorías forman la funcionalidad de taxonomía de nuestro contenido. Esto es, nos permite agrupar y organizar el contenido. En definitiva, a falta de otra herramienta, forman el bloque básico y fundamental para poder organizar nuestro contenido dentro de WordPress.

Una organización mínima de nuestro contenido dinámico en WordPress implica agrupar las entradas en categorías. Cuanto mejor se haga este trabajo, será más fácil mostrar el contenido y organizarlo dentro de nuestro sitio web. Una característica fundamental de las categorías es que son jerárquicas, esto es, pueden realizarse categorías padre y categorias hijo en varios niveles. No es recomendable realizar más de dos niveles de categorías porque hace más compleja la organización y la presentación del contenido. En mis proyectos he comprobado que realizar más de dos niveles, se hace complicado de gestionar. Es preferible una agrupación “más plana” de las categorías y si es necesario describir, recurrir a las etiquetas, o como ya se verá más adelante en las categorías y etiquetas personalizadas (custom taxonomies).

Por defecto, WordPress viene con la taxonomía “category” y está indicada para agrupar las entradas de nuestro sitio. Si nuestro sitio es de estilo blog, es muy posible que con estas sea suficiente para agrupar. Cuando se trabaja con un página web es preferible recurrir a las entradas y taxonomías personalizadas, ya que nos permiten ajustar el contenido a las necesidades específicos del sitio.

Agrupar por categorías es simplemente una técnica similar a dividir por temática, función, familia, servicio o por tipo de público. Conviene separar categorías que sean reconocidas con facilidad y que puedan ser distinguidas entre ellas. Un ejemplo clásico que ilustra esto, es el de una biblioteca, donde los libros se organizan por temáticas. Un libro infantil no debería coincidir con uno de historia o de ciencias. Si bien una entrada podría compartir varias entradas, es preferible que las entradas contengan la menor cantidad de categorías y por tanto que al escoger las categorías sean independientes.

Ejemplos de agrupación en categorías

Exploremos algunos ejemplos adicionales de agrupación con categorías:

  • Un blog de moda, podría agrupar las entradas en categorías que hagan referencia al tipo de vestimenta (casual, fiesta, ceremonia) o también en función del tipo de prenda (calzado, pantalones, camisas) o también por edades (niños, jóvenes y adultos). En muchas ocasiones la división de categorías se realiza en función del público y de los objetivos del sitio web.
  • Un blog de alimentación podría agrupar las entradas por categorías de tipo de alimento (carne, pescado, frutas) o también podría agrupar en función del público objetivo (vegetarianos, diabéticos, deportistas, etc). De nuevo, el tipo de contenido, la frecuencia de publicación y por supuesto los objetivos del sitio web ayudan a responder como agrupar el contenido.
  • En nuestro ejemplo del centro estético ya veremos que una agrupación con taxonomías personalizadas nos permite una organización mucho más precisa y adaptada a la realidad.

Las etiquetas como agrupación descriptiva del contenido

Como ya se ha indicado las etiquetas forman la segunda taxonomía para organizar el contenido el sitio web o blog. A diferencia de las categorías que, como hemos visto, sirven para agrupar las etiquetas sirven para describir. Las etiquetas suelen ser más libres a la hora de ser escogidas y eso también presenta un problema. No plantear una estructura de etiquetas ajustada y selectiva, provoca sitios web con muchas etiquetas con poco contenido. Esto produce sitios web con escasa profundidad en los contenidos, cuando listamos los términos. ¿Es esto malo? Sí, porque provocamos indefinición en los contenidos y una estructura repetitiva que en nada favorece a la correcta indexación del sitio.

Hay que tener en cuenta que al igual que las categorías, las etiquetas cuentan con páginas de archivo que van listando las entradas que incluyen un término determinado. De ahí que cada término de la taxonomía “category” y “tag” genere un enlace distinto en nuestro sitio web.

Hay que ser muy conservador a la hora de crear etiquetas porque es posible generar un sitio web confuso y con una estructura demasiado imprecisa

Por ejemplo en mi sitio web tengo una etiqueta llamada Desarrollo Web que genera la siguiente URL

https://javierarcheni.com/tag/desarrollo-web/

Si hubiera usado libremente esa etiqueta sin considerar que tendría continuidad en más entradas, terminaría con una página dentro de mi sitio web con una o pocas entradas. También hay que considerar que las etiquetas, al igual que las categorías, deben ser lo más abiertas posibles, evitando que se dupliquen. Esto generaría contenido duplicado y en términos de indexación en buscadores es muy negativo. La cuestión está en que hay ser muy selectivo con las etiquetas y optar por las que mejor describan el contenido. Una recomendación es que exprimas al máximo las opciones que tienes con las etiquetas actuales antes de generar nuevas.

De nuevo, repetir que en nuestro ejemplo del centro estético, recurriremos a una taxonomía de etiquetas personalizadas que permita describir con mayor precisión el contenido y que nos genere una estructura de navegación.

Entradas personalizadas para adaptar nuestro contenido

Una de las formas más fáciles de extender el contenido que viene por defecto en la instalación de WordPress es a través de las entradas personalizadas (Custom Post Type). La introducción de las entradas personalizadas supuso un cambio radical en la progresión de WordPress hacia un gestor de contenidos en lugar de una plataforma de blog.

Una entrada personalizada aprovecha toda la funcionalidad que poseen las entradas y que vimos anteriormente para adaptarla a casos más específicos. Esto permite que podamos crear piezas de contenido individuales para casi cualquier necesidad de nuestro sitio web. De esta manera podemos representar las necesidades específicas de contenido en nuestra página web. De hecho muchos complementos o plugins para WordPress aprovechan esta funcionalidad para generar contenido personalizado como pueden ser testimonios o productos.

Para crear entradas personalizadas en WordPress hay que hacerlo a través de código. Aunque el código sea muy fácil de incluir en nuestro sitio, existen varios plugins que hacen el trabajo por nosotros. Entre todos ellos, destaca Custom Post Type UI que proporciona una interfaz fácil de administrar para crear tanto entradas como taxonomías personalizadas. Una ventaja de hacerlo con código es que te familiarizas con las diferentes opciones y entiendes mejor lo que hace y puede hacer el tipo de entrada personalizada. Registrar en nuestro WordPress por código implica crear un código en nuestro tema o en un plugin. Por ahora nos limitamos a utilizar un archivo llamado functions.php y que suele venir con el tema de WordPress o crear nosotros al efecto. Este archivo permite crear código únicamente para nuestro tema, así que es importante destacar que cualquier funcionalidad incluida ahí no valdrá si cambiamos la plantilla. De ahí, la necesidad de crear siempre código fuera del tema. Por motivos de simplicidad crearemos el código en nuestro archivo functions.php

Volviendo a nuestro ejemplo vamos a crear un tipo de entrada personalizada para cada tratamiento. Con esto conseguimos que cada tratamiento tenga su propia página individual dentro del sitio web. Podremos agrupar posteriormente con categorías y etiquetas personalizadas y así podremos mantener el contenido organizado. Al mismo tiempo, también podremos complementar y extender el contenido de los tratamientos y lo que es más importante, podremos relacionar los tratamientos entre sí.

add_action( 'init', 'register_post_type_tratamientos' );

function register_post_type_tratamientos() {
$labels = array(
'name' => 'Tratamientos',
'singular_name' => 'Tratamiento',
'add_new' => 'Añadir Nueva',
'add_new_item' => 'Añadir Nueva Tratamiento',
'edit_item' => 'Editar Tratamiento',
'new_item' => 'Nueva Tratamiento',
'all_items' => 'Todos los Tratamientos',
'view_item' => 'Ver Tratamiento',
'search_items' => 'Buscar Tratamientos',
'not_found' => 'No se encontraron Tratamientos',
'not_found_in_trash' => 'No se encontraron Tratamientos en la Papelera',
'parent_item_colon' => '',
'menu_name' => 'Tratamientos'
);

$args = array(
'labels' => $labels,
'public' => true,
'description' => 'Permite publicar cada tratamiento como un artículo individual, simplificando su gestión por parte de cualquier usuario',
'menu_icon' => 'dashicons-universal-access',
'supports' => array( 'title', 'editor', 'author', 'thumbnail','comments', 'excerpt', 'custom-fields' ),
'has_archive' => true,
'rewrite' => array( 'slug' => 'tratamientos' )

);

register_post_type( 'tratamientos', $args );
}

El código anterior básicamente hace lo siguiente:

Añade la función register_post_type_tratamientos() al proceso de carga del sitio (a través de los famosos hooks o ganchos de acción).
Declara la función register_post_type_tratamientos() que básicamente llama a la función register_post_type() pasando como primer argumento el nombre de la entrada personalizada y como segundo una variable que contiene todas las opciones que admite la función como las etiquetas para el panel de control y las diferentes opciones de configuración de la entrada personalizada.

Comprender lo que hacen estas opciones es fundamental y está bien documentado. Recomiendo repasar la documentación oficial para ver con detalle cada opción, pero por su interés comentaré las indicadas:

  • labels: Personaliza las etiquetas que aparecen en el panel de control. Es un array que incluye muchas etiquetas en plural y singular.
  • public: Fundamental para que la funcionalidad de la entrada personalizada esté disponible desde el panel de control.
  • supports: Indica las opciones disponibles dentro del editor de la entrada. Interesante para ocultar ciertas partes a los usuarios.
  • has_archive: Permite que la entrada disponga de páginas de archivos.
  • rewrite: Permite personalizar la dirección que muestra WordPress para la entrada.

En nuestro ejemplo la dirección http://esteticaisabella.com/tratamientos/drenaje-linfatico-manual es posible porque indicamos que WordPress reescriba la ruta añadiendo “tratamientos”. Esto permite una dirección más adecuada y mucho más legible. Además como hemos estado viendo, al ver la dirección se intuye una estructura organizada dentro del sitio.

Categorías y etiquetas personalizadas para agrupar y describir nuestro contenido

Otra de las herramientas más útiles para personalizar nuestro contenido son las categorías y las etiquetas personalizadas (taxonomías personalizadas o custom taxonomy). Al igual que las entradas personalizadas permiten extender el funcionamiento de las entradas, las taxonomías personalizadas hacen lo propio con las categorías y etiquetas. Esto tiene como resultado una capacidad de personalización total sobre nuestro contenido. Con ellas podemos agrupar y describir con precisión el contenido, consiguiendo modelar nuestras necesidades al funcionamiento del WordPress.

Lo explicado anteriormente para el registro de una entrada personalizada se aplica a este caso, pero con la diferencia que usaremos la función register_taxonomy() para crear una categoría o etiqueta personalizada.

De nuevo volvemos a nuestro ejemplo para ver en acción esta funcionalidad. Tras analizar nuestro contenido comprendemos que hay que agrupar los tratamientos creados como entrada personalizada en categorías. Para ello se creará una categoría personalizada llamada Servicios, donde podremos organizar todos los tratamientos en función, por ejemplo de si son tratamientos faciales, corporales o de otro tipo.

Así pondremos el siguiente código en functions.php a continuación del anterior.

add_action( 'init', 'register_servicios_taxonomy' );

function register_servicios_taxonomy() {

$labels = array(
'name' => 'Servicios',
'singular_name' => 'Servicio',
'search_items' => 'Buscar Servicios',
'all_items' => 'Todos los Servicios',
'parent_item' => 'Servicio Superior',
'parent_item_colon' => 'Servicio Superior:',
'edit_item' => 'Editar Servicio',
'update_item' => 'Actualizar Servicio',
'add_new_item' => 'Añadir Nueva Servicio',
'new_item_name' => 'Nuevo Nombre de Servicio',
'menu_name' => 'Servicios'
);

$args = array(
'hierarchical' => true,
'labels' => $labels,
'public' => true,
'show_ui' => true,
'show_admin_column' => true,
'show_in_nav_menus' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'servicios')
);

register_taxonomy( 'servicios', array('tratamientos','post'), $args );

}

Como se puede comprobar el código es muy similar al anterior. De nuevo para evitar reproducir la documentación de WordPress hay que repasar todas las opciones que nos ofrece esta función. La más importante es la que hace referencia la jerarquía.

hierarchical: Permite diferenciar entre categorías y etiquetas. Si pasamos true, significa que la taxonomía responde al funcionamiento jerárquico que vemos en las categorías. En cambio, el valor false, le otorgará la funcionalidad descriptiva de las etiquetas y no será jerárquica. En nuestro caso, pasamos true porque queremos que se comporte como una categoría.

Los parámetros de la función register_taxonomy() permiten indicar el nombre que le asignaremos a la taxonomía como primer argumento y en el segundo un array donde hacerla disponible. En el ejemplo estará disponible en los tipos de entrada ‘tratamientos’ y en las entradas (post). De esta manera una categoría personalizada puede agrupar diferentes tipo de contenido, incluyendo el que viene por defecto en WordPress. ¡Muy interesante!.

Para finalizar con las etiquetas personalizadas en nuestro ejemplo también crearemos una llamada Soluciones. Esta nos permitirá que describir los tratamientos y de alguna manera ir “coleccionando” todo el contenido de nuestro sitio web alrededor de ellas. Pensemos por ejemplo en contenido que esté bajo la etiqueta Ojeras, Celulitis, Flacidez. La idea es conseguir un sitio web organizado para los visitantes y que responda a la información que están buscando.

add_action( 'init', 'register_soluciones_taxonomy' );

function register_soluciones_taxonomy() {

$labels = array(
'name' => 'Soluciones',
'singular_name' => 'Solución',
'search_items' => 'Buscar Soluciones',
'all_items' => 'Todos los Soluciones',
'parent_item' => 'Solución Superior',
'parent_item_colon' => 'Solución Superior:',
'edit_item' => 'Editar Solución',
'update_item' => 'Actualizar Solución',
'add_new_item' => 'Añadir Nueva Solución',
'new_item_name' => 'Nuevo Nombre de Solución',
'menu_name' => 'Soluciones'
);

$args = array(
'hierarchical' => true,
'labels' => $labels,
'public' => true,
'show_ui' => true,
'show_admin_column' => true,
'show_in_nav_menus' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'soluciones')
);

register_taxonomy( 'soluciones', array('tratamientos','post'), $args );

}

 

En el caso de que posteriormente creemos más entradas personalizadas sería posible agregar el tipo de entrada a las funciones de register_taxonomy(). Por ejemplo un tipo de entrada personalizada que también podríamos incluir en este sitio web sería la de Promociones. De esta manera tendríamos la posibilidad de editar las promociones por separado, agrupandolas por servicios y describiendo por soluciones. Creo que queda claro como WordPress nos permite generar y personalizar contenido.

Relación de contenido personalizado

En este punto conviene recordar el gráfico donde se muestra cómo se relacionan los tratamientos con los servicios y la soluciones. Tenemos como entrada personalizada el tratamiento. El tratamiento pertenece a una (en principio sólo una) categoría personalizada llamada servicios y a su vez este tratamiento responde a una o varias soluciones, establecida como una etiqueta personalizada. Vayamos un paso más con las promociones. Si creamos una entrada personalizada promociones podremos enlazar la promoción con un (quizás más) tratamiento. De esta forma siempre podremos conectar la publicación de promoción con el tratamiento asociado. Esto favorece la relación del contenido en nuestro sitio web, genera enlaces internos que mejora la indexación de nuestro sitio y al mismo tiempo permite que nuestro visitante pueda encontrar y descubrir más contenido en nuestro sitio web.

Campos personalizados para complementar la información de nuestro contenido

Los campos personalizados (custom fields) permiten extender y ampliar la información de nuestro contenido. Gracias a los campos personalizados podemos construir con precisión un contenido adaptado a nuestras necesidades, separando los datos que proporcionamos a nuestras entradas o páginas (o a cualquier tipo de contenido). Los campos personalizados permiten despegarse de la estructura tipo blog de WordPress y construir sitios web que sean más fieles al tipo de contenido que estamos creando. Añaden más campos con los que describir y enriquecer nuestro contenido, permitiendo organizar y estructurar a nuestras necesidades.

Los campos personalizados no tienen límite y se crean según las características de nuestro contenido. En nuestro sitio web podemos complementar la información suministrada en el editor de WordPress, con un campo personalizado que estableciera la duración en la aplicación del tratamiento. En lugar de indicar eso en el campo general de edición (que es una especie de cajón de sastre), los campos personalizados nos permiten crear más campos en el formulario de edición. Se podría considerar como campos adicionales a un formulario de entrada y por tanto, separamos la información, permitiendo por ejemplo, trabajar y consultar esos datos por separado. Siguiendo con ese ejemplo podríamos en nuestra plantilla mostrar la duración en un sitio preciso de la web y maquetarlo a nuestro gusto. Incluso podríamos hacer consultas sobre ese tipo de contenido. Ejemplo: ordenar los tratamientos según la duración, en el lugar de nombre o de categoría “servicios”.

Los campos personalizados entran en lo que se conoce como “meta datos”, esto es, datos que describen otros datos. Se guardan en la base de datos en la forma de clave y valor. La clave es el nombre del elemento meta dato. El valor es la información que aparecerá en el campo de edición y que se mostrará luego al usuario. Sencillamente las posibilidades son muchísimas, porque es una forma muy práctica de almacenar información específica y descriptiva del contenido.

Conclusión

WordPress nos ofrece herramientas básicas y la capacidad de extenderlas para adaptar nuestro contenido. Lo importante es planificar correctamente el contenido y personalizar la estructura de los datos. En un artículo posterior trataremos como extender los campos personalizados y conectar el contenido gracias a un potente plugin llamado Advanced Custom Fields. Aunque no sea el único, es posiblemente el plugin más completo para adaptar nuestro WordPress.