Nascondere categorie specifiche dal widget delle categorie

19 giu 2015, 22:37:13
Visualizzazioni: 38.4K
Voti: 12

Sto cercando di nascondere un gran numero di categorie dal mio widget delle categorie. Ho provato alcuni plugin ma nessuno di essi sembra permettermi di utilizzare l'opzione a tendina. Ho esaminato l'hook widget_categories_args e sembra essere quello che voglio, ma non riesco a farlo funzionare.

Ecco il mio codice

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 );

Ho preso questo codice da qui: https://codex.wordpress.org/Plugin_API/Filter_Reference/widget_categories_args

Sto inserendo questo nel file functions.php del mio tema. Non dovrebbe essere un problema anche se la funzione è impostata per i plugin, giusto?

7
Commenti

Prova ad aumentare il quarto numero a un valore alto come 1000

s_ha_dum s_ha_dum
20 giu 2015 00:35:15

Questo funziona per me con il widget di categoria incluso.

s_ha_dum s_ha_dum
20 giu 2015 02:54:33

@s_ha_dum il quarto numero? Nella riga add_filter()?

FranticJ3 FranticJ3
22 giu 2015 17:21:08

Scusa, il quarto argomento. Hai 1. Prova con 1000. Come ho detto, per me funziona quindi potrebbe esserci un'altra funzione che interferisce. Impostare una priorità alta potrebbe far sì che la tua abbia l'ultima parola. Stai usando il widget delle categorie di Core?

s_ha_dum s_ha_dum
22 giu 2015 17:25:52

@s_ha_dum sì, sto usando il widget delle categorie di Core. L'ho impostato a 10000 ma ancora non le nasconde.

FranticJ3 FranticJ3
22 giu 2015 17:58:31

Disabilita i tuoi plugin e cambia tema con uno incluso - uno dei Twenty. Il codice funziona in quel caso?

s_ha_dum s_ha_dum
22 giu 2015 18:03:50

@s_ha_dum è passato a Twenty Fifteen, lo ha aggiornato, ha aggiunto il codice e ha disabilitato tutti i plugin. Ancora non funziona per me

FranticJ3 FranticJ3
23 giu 2015 18:28:50
Mostra i restanti 2 commenti
Tutte le risposte alla domanda 5
2
14

Sono consapevole che questo post sia piuttosto vecchio, ma dato che mi sono imbattuto nello stesso problema e questo post è apparso più in alto rispetto a uno con una soluzione, ho pensato di aggiungere questa soluzione, che ha funzionato per me.

Fonte: http://coffeecupweb.com/how-to-exclude-or-hide-categories-from-category-widget-in-wordpress-sidebar/

//Nascondi categorie dal widget delle categorie di WordPress
function exclude_widget_categories($args){
    $exclude = "1,4,8,57,80";
    $args["exclude"] = $exclude;
    return $args;
}
add_filter("widget_categories_args","exclude_widget_categories");
19 gen 2017 19:38:46
Commenti

Posso confermare che funziona perfettamente a marzo 2018! Consiglio bonus: passa il mouse sopra una categoria nella pagina delle Categorie e cerca il "tag_id" nel link in fondo al tuo browser. Sì, lo so che dice tag_id, ma si riferisce comunque alla categoria.

Eric Hepperle - CodeSlayer2010 Eric Hepperle - CodeSlayer2010
3 mar 2018 22:37:04

Dic. 2020: Posso confermare anche io che funziona alla grande! L'intero problema mi ha reso ancora più consapevole del fatto che la funzione categoria viene spesso deviata dal suo focus centrato sull'utente da temi e plugin.

Nora McDougall-Collins Nora McDougall-Collins
3 dic 2020 19:54:24
1

Questo funziona: https://gist.github.com/peltopiri/76e7d1143e33b424633114103cfae5ec

<?php
function exclude_woocommerce_widget_product_categories($widget_args) {
    //Inserisci qui gli ID delle categorie da escludere
    $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');
18 set 2018 18:19:50
Commenti

Funziona anche sulle pagine delle sottocategorie.

O. Jones O. Jones
29 mag 2021 00:57:25
0

Nascondi la categoria non categorizzata/predefinita in WooCommerce:

Immagino di non essere l'unico ad essere arrivato su questa pagina cercando un modo per nascondere la categoria predefinita/non categorizzata introdotta in WooCommerce 3.3.

Se sei uno di loro, invece di codificare manualmente l'ID della categoria che potrebbe essere diverso in ambienti/installazioni diverse, puoi utilizzare il seguente snippet, modificato da lo snippet di Mike Jolley per nasconderla dal widget Categorie prodotti di WooCommerce:

<?php // Non includere questo se è già aperto!

/**
 * Il codice va nel file functions.php del tema.
 *
 * Se usi la vista a discesa invece di quella gerarchica, 
 * aggancia il seguente filtro invece: 
 *      `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;
}
9 lug 2018 11:07:44
0

Dopo diverse ricerche e test, nascondere le categorie dei post per gli elementi dell'elenco e per il menu a discesa viene fatto separatamente poiché vengono chiamati da diversi ID di filtro.

Per gli elementi della categoria nell'elenco usa

add_filter("widget_categories_args","TUA_FUNZIONE_PERSONALIZZATA");

Per gli elementi della categoria nel menu a discesa usa

add_filter("widget_categories_dropdown_args","TUA_FUNZIONE_PERSONALIZZATA");

Riferimento: https://basicwp.com/exclude-categories-from-category-widgets-in-wordpress/

26 feb 2019 13:02:47
1

Sono riuscito a nascondere una singola categoria utilizzando CSS:

li.cat-item-1 {
    display: none;
}

Ho inserito questo frammento CSS nella sezione "CSS aggiuntivo" del mio tema.

La categoria 1 è "Non categorizzato", quella che volevo nascondere.

27 dic 2019 22:18:21
Commenti

Per rendere l'offerta più allettante, nascondi le categorie direttamente nel personalizzatore. Risparmia un passaggio evitando di doverlo fare nella cartella del tema.

klewis klewis
3 ago 2021 23:14:12