La instalación de WordPress incluye, seguro que ya lo sabes, una categoría para las entradas llamada Sin categoría, que no se puede borrar: puedes cambiarle el nombre, pero no borrarla. Aparentemente.
Eso es así porque es la categoría por defecto, y la que tiene esa característica está protegida contra borrado. Vamos a ver no sólo cómo podemos borrarla, sino también cómo podemos proteger contra borrado otras taxonomías como etiquetas, categorías de productos, atributos o incluso una taxonomía personalizada.
Tabla de contenidos
La categoría Sin categoría
¿Verdad que da rabia tener ahí la categoría Sin categoría? Serán manías, pero a mí no me gusta. Cierto que se le puede cambiar el nombre por otra que vayas a utilizar y darle uso (recuerda siempre cambiarle también el slug, para potenciar el SEO de tu web), pero no hay mucha gente que lo haga.
Normalmente se queda ahí, olvidada y huérfana de entradas. Lo que, por cierto, tampoco es bueno para el SEO, ya que tendrás ese archivo de categoría vacío de contenido, y si no la configuras como noindex Google verá una página sin nada dentro. Y no es que sea un problema grave, pero a Google no le gustan esas cosas.
Borrar la categoría por defecto estableciendo otra
La verdad es que la opción no está escondida en absoluto, pero es una de esas opciones que se suelen pasar por alto y que no se utilizan mucho. Quizá porque es de las primeras cosas que se hacen, cuando aún no hay contenido, y se queda ahí medio olvidado.
Me refiero a la opción que te permite elegir cuál va a ser la categoría por defecto, y que tienes en Ajustes > Escritura > Categoría predeterminada para las entradas. Una vez que has creado otras categorías, ahí podrás cambiar cuál es la que se asignará a las entradas a las que no asignes una manualmente.
Y resulta que, ¡oh, magia!, una vez que cambias la categoría por defecto ya sí puedes borrar Sin categoría. Claro que ahora la que no puedes borrar es la nueva categoría que has asignado por defecto. Porque, en efecto, la categoría por defecto queda protegida contra borrado.
¿Y si no queremos tener ninguna?
Eliminar por completo las categorías
Puede darse el caso de que no quieras tener absolutamente ninguna categoría en el blog. Cosas más raras se han visto. Y sí, se puede. Pero hay que ensuciarse las manos un poco.
Pero antes, claro está, el disclaimer de rigor: nunca operes sobre la base de datos sin hacer primero una copia de seguridad. Da igual que sepas exactamente lo que tienes que hacer, o que estés siguiendo indicaciones guiadas paso a paso como las de este artículo: siempre puede haber errores o imprevistos, y dañar la base de datos puede significar perder toda tu web.
Pues sí, hay que enredar (sólo un poquito) en la base de datos. Concretamente en la tabla wp_options, donde tendremos que buscar la opción default_category. Si no la has cambiado como contaba en el apartado anterior y sigue siendo Sin categoría, el valor de esa opción sera «1». Si la has cambiado, su valor será el ID de la categoría que has establecido por defecto.
¿Y qué valor tenemos que poner para poder borrar todas las categorías sin que quede ninguna protegida? Pues ninguno: basta con cargarnos esa opción. Sí, borrarla, eliminarla completamente. Nada se va a romper en tu web, tranquilo. Simplemente, no habrá categoría por defecto. Y las podrás borrar todas.
Las taxonomías por defecto
Ahora lanzo una pregunta al aire: y si hay una categoría por defecto, que no se puede borrar, ¿no podría haber también una etiqueta por defecto, o una categoría de producto por defecto, o un atributo por defecto, o la taxonomía que haga falta, y que sea imborrable?
Sí, te lo pregunto para que pienses, 🙂 no es una pregunta retórica. Y efectivamente, sé que has contestado correctamente: se puede. Para cada taxonomía se puede establecer un valor (la palabra correcta que designa un valor de una taxonomía es término) por defecto, y ese término no se puede borrar.
Y seguro que si piensas un poco, según lo que hemos visto antes, puedes saber cómo. Y si no te lo digo yo: basta con incluir una opción en la tabla wp_options con el nombre (option_name) default_ y con el valor (option_value) correspondiente al ID del término.
¿Estás construyendo tu tienda online o eres implementador WordPress?
¿Necesitas plugins de calidad y con soporte para implementar funcionalidades concretas?
Consigue todos los plugins a la venta en la sección de plugins de esta web y todos los que siga añadiendo. Acceso a los 96 plugins (y subiendo) con soporte directo del desarrollador, actualizaciones y uso ilimitado: úsalos en tantas webs como lo necesites.
Averiguar el ID de un término
Como ves, necesitamos saber el ID del término, pero eso es muy sencillo. Basta con ir a la página de términos de la taxonomía (por ejemplo Entradas > Etiquetas para las etiquetas de los posts, o Productos > Atributos para los atributos de los productos de WooCommerce) y pinchar en el enlace Editar del término del que queramos conocer el ID.
Llegas así a una URL del tipo tuweb.com/wp-admin/term.php?taxonomy=&tag_ID=[ID del término]. Y ahí lo tienes, ése es el ID que estás buscando y, como puedes ver, también tienes ahí el nombre de la taxonomía en cuestión.
Proteger un término contra borrado
Pues ya sabes lo que hay que hacer: basta ahora ir a phpMyAdmin (repito: siempre antes copia de seguridad) seleccionar la tabla wp_options de la base de datos correspondiente y, usando la opción Insertar, añadir una nueva fila con el nombre y valor que ya hemos visto. Unos ejemplos:
- Para la categoría de las entradas, ya lo hemos visto: default_category
- Para las etiquetas de las entradas (post_tag) sería default_post_tag
- Para las categorías de los productos en WooCommerce (product_cat) habría que utilizar default_product_cat
- Para las etiquetas de los productos (product_tag) es default_product_tag
- Para los atributos de WooCommerce (product_attributes) usaríamos default_product_attributes
- Etcétera
Y ¡voilà! El término en cuestión queda protegido y ya no puede ser borrado. A no ser, claro está, que cambies o elimines la opción correspondiente en la base de datos, puesto que en WordPress no hay opciones para cambiar las taxonomías por defecto, a excepción de la categoría de las entradas, como ya vimos al principio del artículo.
Protegiendo términos de una taxonomía personalizada mediante código
Y todo esto, ¿qué utilidad tiene? Bueno, en principio si lo has leído supongo que te hacía falta saberlo, así que alguna tendrá. 🙂
Bromas aparte, esto es especialmente útil a la hora de desarrollar un plugin que haga uso de una taxonomía personalizada. El hecho de crear un término por defecto te ayudará a establecer en muchos casos opciones predeterminadas, sin tener que confiar que el usuario no va a borrar el término que has creado para ello.
Un código rápido por si te es útil: creamos el término por defecto para la taxonomía personalizada, comprobamos que el valor devuelto por la operación es un array (la función wp_insert_term devolvería un objeto en caso de no tener éxito, y si no hacemos la comprobación obtendríamos un bonito error en caso de que no se pudiera crear el término) y lo establecemos por defecto, evitando así que el usuario lo borre:
$termino = wp_insert_term ('Nombre del término'), $taxonomia, $argumentos);
if (is_array ($termino))
add_option ('default_'.$taxonomia, $termino['term_id']);
Deja una respuesta