J'essaie de cacher un grand nombre de catégories à mon widget de catégorie. J'ai essayé quelques plugins mais aucun ne semble vouloir me laisser utiliser l'option de menu déroulant. J'ai regardé dans le crochet widget_categories_args et cela semble être ce que je veux mais je ne peux pas le faire fonctionner.
En tout cas voici mon code
function widget_categories_args_filter( $cat_args ) {
$exclude_arr = array( 57,61,63,56,55,62,52,53,54,67,65 );
if( isset( $cat_args['exclude'] ) && !empty( $cat_args['exclude'] ) )
$exclude_arr = array_unique( array_merge( explode( ',', $cat_args['exclude'] ), $exclude_arr ) );
$cat_args['exclude'] = implode( ',', $exclude_arr );
return $cat_args;
}
add_filter( 'widget_categories_args', 'widget_categories_args_filter', 10, 1 );
J'ai pris ça d'ici: https://codex.wordpress.org/Plugin_API/Filter_Reference/widget_categories_args
Je mets ceci dans le functions.php de mon thème. Cela ne devrait pas importer même si la fonction est définie pour les plugins, non?
Je sais que ce message est assez ancien, mais parce que je suis tombé sur le même problème et que ce message a dépassé celui avec une solution, j'ai décidé d'ajouter ceci, ce qui a fonctionné pour moi.
Source: http://coffeecupweb.com/how-to-exclude-or-hide-categories-from-category-widget-in-wordpress-sidebar/
//Hide categories from WordPress category widget
function exclude_widget_categories($args){
$exclude = "1,4,8,57,80";
$args["exclude"] = $exclude;
return $args;
}
add_filter("widget_categories_args","exclude_widget_categories");
Après plusieurs recherches et tests, le masquage des catégories de publication pour les éléments de la liste et la liste déroulante sont effectués séparément car ils sont appelés par différents identificateurs de filtre.
Pour les éléments de catégorie de liste, utilisez
add_filter("widget_categories_args","YOUR_CUSTOM_FUNCTION");
Pour les éléments de catégorie déroulants, utilisez
add_filter("widget_categories_dropdown_args","YOUR_CUSTOM_FUNCTION");
Référence: https://basicwp.com/exclude-categories-from-category-widgets-in-wordpress/
Je suppose que je ne suis pas le seul à être venu sur cette page à la recherche d'un moyen de masquer la catégorie par défaut/non catégorisée introduite dans WooCommerce 3.3.
Si vous êtes l'un d'entre eux, au lieu de coder en dur l'ID de la catégorie, qui peut être différent dans différents environnements/installations, vous pouvez utiliser le fragment de code suivant, modifié à partir de celui de Mike Jolley pour le masquer du Woocommerce Widget Catégories de produits:
<?php // Do not include this if already open!
/**
* Code goes in theme functions.php.
*
* If you use dropdown instead of hierachical view,
* hook to the following filter instead:
* `woocommerce_product_categories_widget_dropdown_args`
*/
add_filter( 'woocommerce_product_categories_widget_args', 'custom_woocommerce_product_categories_widget_args' );
function custom_woocommerce_product_categories_widget_args( $args ) {
$args['exclude'] = get_option( 'default_product_cat' );
return $args;
}
Cela fonctionne: https://Gist.github.com/peltopiri/76e7d1143e33b424633114103cfae5ec
<?php
function exclude_woocommerce_widget_product_categories($widget_args) {
//Insert excluded category ids here
$excludes = array(12,33);
$includes = explode(",",$widget_args['include']);
$includes = array_filter($includes, function($value) use ($excludes) {
return !in_array($value, $excludes);
});
$widget_args["include"] = implode(",", $includes);
return $widget_args;
}
add_filter( 'woocommerce_product_categories_widget_dropdown_args', 'exclude_woocommerce_widget_product_categories');
add_filter( 'woocommerce_product_categories_widget_args', 'exclude_woocommerce_widget_product_categories');