Ayer, gracias a un mensaje que publicó un usuario de Foros del Web, encontré un hook de wordpress de lo más interesante, ya que sirve para ocultar categorías del widget por defecto que trae WordPress para mostrar el listado de categorías en la barra lateral.
Para excluir una o más de las categorías predeterminadas del widget «Categorías» de WordPress, añade estas láneas de código en el archivo functions.php del tema que estés usando:
function exclude_widget_categories($args){
$exclude = "3,6,18"; // Los IDs de las categorías a excluir
$args["exclude"] = $exclude;
return $args;
}
add_filter("widget_categories_args","exclude_widget_categories");
Si tu tema no contiene ningún archivo functions.php, puedes crearlo tú mismo sin olvidar que debes editarlo como texto plano. En ese caso deberás poner también la etiqueta php:
<?php
function exclude_widget_categories($args){
$exclude = "3,6,18"; // Los IDs de las categorías a excluir
$args["exclude"] = $exclude;
return $args;
}
add_filter("widget_categories_args","exclude_widget_categories");
?>
Espero que os resulte tan útil como a má 😉
Gracias a Ruben Sargsyan
Interesante post. Te agradecería si tienes alguna alternativa para excluir categorías del widget Archivos y del widget Calendario. Uncliente quiere que en el calendario solo salga una categoría específica.
Gracias de ante mano
Hola, muy buenos tips.
Quisiera saber si existe la posibilidad de poder modificar el widget Archivos por defecto de WP y que muestre el total de post MENOS los post de una categoría excluida.
De este widget he excluido por php una categoría X, sin embargo igual me aparece dentro de la cantidad total de post. Pienso porque cuenta los post publicados del mes.
Ejemplo:
Sin excluir la categoría X aparece así:
Octubre 2012 (15)
Excluída la categoría sigue apareciendo así:
Octubre 2012 (15)
pero quiero que quede de esta forma:
Octubre 2012 (9)
Al hacer clic en dicho mes me lista todos los post excepto de la categoría que he excluido. Hasta ahí todo bien pero no logro poder descontar del valor total de post la categoría que he excluido (15-6=9).
Agradeceré si alguien me puede ayudar
Hola, no sé si puede hacerse, pero tienes otras soluciones alternativas:
1. La más simple, esconder el contador mientras lo solucionas
2. La más complicada, crear tu propia función, parecida a esta pero jugando con la función widget_archives_args
@zanguanga: Gracias por tu respuesta. He recibido una respuesta de otro foro y me comentó que la solución pasaba por comunicarse con la Base de Datos antes de tomar los contenido. Es decir hacer un filtro SQL. Además que desde el archivo /wp-includes/general-template.php trabajar con los filtros «getarchives_where» y «getarchives_join».
Entonces debo crear una función y agregarla al archivo function.php.
Dejo el enlace para que puedan leerlo y poder aplicarlo con algunas modificaciones:
https://illuminatikarate.com/blog/wordpress-how-to-exclude-categories-from-the-archive-widget/