Excluir categorías de WordPress

Mostrar las categorías de tu blog es una cuestión de elección … hay quien desea mostrarlas en cada página para mejorar las posibilidades de navegación de los visitantes, pero por otro lado, hay ocasiones en las que el número de categorías es tan grande que es mejor ocultarlas para no recargar las páginas de enlaces.

Una tercera posibilidad es que solo quieras mostrar algunas de las categorías en lugar de todas, para ello solo tienes que realizar algunos cambios en tu instalación de WordPress y excluir las categorías que no quieras que aparezcan:

Exluir categorías en WordPress usando un plugin

Advanced Category Excluder. Este avanzado plugin dispone de muchas opciones y es altamente configurable, eso incluye el manejo de categorías tal como quieres que se muestren en las páginas de tu blog. Solo tienes que descargarlo, subirlo a la carpeta de ‘plugins’ de tu instalación WordPress y activarlo. Una vez hecho esto verás una opción nueva en el menú del panel de control de WordPress llamada ACE que puedes utilizar para configurar el plugin.

Front Page Excluded Categories. Un sencillo plugin que evita que los posts de las categorías que selecciones no aparezcan en la página principal.

Excluir categorías en WordPress modificando el tema

Una opción algo más compleja es realizar algunos cambios a mano en los archivos del tema activo de tu instalación WordPress. Esta opción evita el uso de plugins, algo interesante a la hora de evitar recargar demasiado el sistema y, por otro lado, tiene el aliciente de hacer las cosas tú mismo y personalizarlo tal como quieres.

Para realizar las modificaciones tienes que encontrar el archivo donde se muestran los posts de tu blog, puede ser el archivo ‘index.php’ o ‘the_loop.php’, dependiendo de qué tema estés utilizando. Para averiguarlo solo tienes que localizar dentro de uno de estos archivos una línea similar a ésta:

<?php  while ( have_posts() ) { the_post();
?>
y modificarla por esta otra:
<?php  while ( have_posts() ) { the_post();
if (is_home()) if (in_category(“2″)) continue;
if (is_home()) if (in_category(“3″)) continue;
if (is_home()) if (in_category(“4″)) continue;
?>

El ejemplo anterior afectaría a las categorías 2, 3 y 4, puedes eliminar, añadir o modificar esas líneas según te interese … aunque es posible que te preguntes por qué se utilizan esos números.

Si esperabas que fuera tan fácil como indicar el nombre de la categoría no es así, ten en cuenta que el nombre de una categoría puede editarse y modificarse, así que, para evitar errores de posts descolgados de la categoría a la que pertenecen, se utilizan números identificativos … cada categoría tiene su número.

¿Cómo encontrar qué número tiene la categoría que quiero excluir? Existen varias formas, pero una infalible que te sacará de dudas es esta: visita tu panel de control WordPress y clica sobre ‘Categorías’ en el menú de la izquierda. Verás que aparece la lista de categorías a la derecha, solo tienes que clicar sobre ‘Editar’ sobre la categoría que te interese, entonces verás que la URL de tu navegador cambia a algo parecido a esto:

http://oleblogs.com/wp-admin/edit-tags.php?action=edit&taxonomy=category&post_type=post&tag_ID=1

En este caso, el número del final que aparece tras ‘tag_ID=’ es el número de la categoría.

Excluir categorías en WordPress utilizando funciones

Una tercera forma para excluir categorías es creando una función específica que se encargue de ello. Ahora que ya sabes cómo localizar qué numero tiene asociado una categoría concreta es bastante sencillo.

En primer lugar, tienes que localizar y editar el archivo ‘functions.php’ dentro de la carpeta donde está instalado el tema actual de tu blog e incluir el siguiente código:

<?php
function excluircategoria() {
set_query_var(‘cat’, ‘-2′);
}
add_filter(‘pre_get_posts’, ‘excluircategoria’);
?>

El código anterior excluiría los posts de la categoría 2, pero todavía puedes refinarlo más:

<?php
function excluircategoria() {
if ( is_home() ) {
set_query_var(‘cat’, ‘-2′);
}
}

add_filter(‘pre_get_posts’, ‘excluircategoria’);
?>

En este caso, especificas que la exclusión debe realizarse en la página principal ‘is_home()’, pero puedes modificarlo para excluir categorías de otras zonas de tu blog, por ejemplo ‘is_tag()’ en el caso de que quieras excluir categorías de páginas de tags.

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>