Ascunde categorii specifice din widget-ul de categorii

19 iun. 2015, 22:37:13
Vizualizări: 38.4K
Voturi: 12

Încerc să ascund un număr mare de categorii din widget-ul meu de categorii. Am încercat câteva plugin-uri dar niciunul nu pare să-mi permită să folosesc opțiunea dropdown. M-am uitat la hook-ul widget_categories_args și pare să fie ceea ce vreau, dar nu reușesc să-l fac să funcționeze.

Iată codul meu

function widget_categories_args_filter( $cat_args ) {
    // Array cu ID-urile categoriilor care trebuie excluse
    $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 );

Am luat codul de aici: https://codex.wordpress.org/Plugin_API/Filter_Reference/widget_categories_args

Pun acest cod în functions.php al temei mele. Nu ar trebui să conteze acest lucru chiar dacă funcția este setată pentru plugin-uri, corect?

7
Comentarii

Încearcă să mărești al patrulea număr la ceva mai mare, cum ar fi 1000

s_ha_dum s_ha_dum
20 iun. 2015 00:35:15

Această soluție funcționează pentru mine în cazul widget-ului de categorii inclus.

s_ha_dum s_ha_dum
20 iun. 2015 02:54:33

@s_ha_dum al patrulea număr? În linia add_filter()?

FranticJ3 FranticJ3
22 iun. 2015 17:21:08

Scuze, al patrulea argument. Ai 1. Încearcă 1000. Cum am spus, la mine funcționează așa că poate există o altă funcție care interferează. Setarea unei priorități mari ar putea să dea prioritate funcției tale. Folosești widget-ul de categorii din Core?

s_ha_dum s_ha_dum
22 iun. 2015 17:25:52

@s_ha_dum da, folosesc widget-ul de categorii din Core. L-am setat la 10000 și tot nu le ascunde.

FranticJ3 FranticJ3
22 iun. 2015 17:58:31

Dezactivează pluginurile și schimbă tema la una din cele incluse implicit - una din cele Twenty ceva. Funcționează codul atunci?

s_ha_dum s_ha_dum
22 iun. 2015 18:03:50

@s_ha_dum a trecut la Twenty Fifteen, l-a actualizat, a adăugat codul și a dezactivat toate pluginurile. Tot nu funcționează pentru mine

FranticJ3 FranticJ3
23 iun. 2015 18:28:50
Arată celelalte 2 comentarii
Toate răspunsurile la întrebare 5
2
14

Știu că acest articol este destul de vechi, dar pentru că am dat peste aceeași problemă și acest articol a apărut mai sus decât unul cu o soluție, am considerat că ar fi bine să adaug acest cod, care a funcționat pentru mine.

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

//Ascunde categorii din widget-ul de categorii 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 ian. 2017 19:38:46
Comentarii

Pot confirma că funcționează excelent în martie 2018! Sfat bonus: treceți cursorul peste o categorie pe pagina de Categorii și căutați "tag_id" în linkul de la partea de jos a browserului. Da, știu că scrie tag_id, dar se referă totuși la categorie.

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

Dec. 2020: Pot confirma și eu că funcționează excelent! Întreaga problemă m-a făcut și mai conștient de faptul că funcția de categorie este adesea deviată de la focusul său orientat spre vizitator de cătte teme și plugin-uri.

Nora McDougall-Collins Nora McDougall-Collins
3 dec. 2020 19:54:24
1

Aceasta funcționează: https://gist.github.com/peltopiri/76e7d1143e33b424633114103cfae5ec

<?php
function exclude_woocommerce_widget_product_categories($widget_args) {
    //Introduceți aici ID-urile categoriilor excluse
    $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 sept. 2018 18:19:50
Comentarii

Aceasta funcționează și pe paginile de subcategorii.

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

Ascundeți categoria implicită / necategorizată în WooCommerce:

Cred că nu sunt singurul care a ajuns pe această pagină în căutarea unei modalități de a ascunde categoria implicită / necategorizată introdusă în WooCommerce 3.3.

Dacă sunteți unul dintre ei, în loc să hard-codați ID-ul categoriei care poate fi diferit în diferite medii / instalări, puteți folosi următorul fragment de cod, modificat din fragmentul lui Mike Jolley pentru a o ascunde din widget-ul Categorii de Produse WooCommerce:

<?php // Nu includeți acest lucru dacă este deja deschis!

/**
 * Codul se adaugă în fișierul functions.php al temei.
 *
 * Dacă utilizați vizualizarea dropdown în loc de cea ierarhică,
 * conectați-vă la următorul filtru în schimb:
 *      `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 iul. 2018 11:07:44
0

După mai multe căutări și teste, ascunderea categoriilor de articole pentru elementele din listă și meniurile drop-down se face separat, deoarece acestea sunt apelate prin ID-uri diferite de filtre.

Pentru elementele de categorie din listă, utilizați

add_filter("widget_categories_args","FUNCTIA_TA_CUSTOM");

Pentru elementele de categorie din meniurile drop-down, utilizați

add_filter("widget_categories_dropdown_args","FUNCTIA_TA_CUSTOM");

Referință: https://basicwp.com/exclude-categories-from-category-widgets-in-wordpress/

26 feb. 2019 13:02:47
1

Am reușit să ascund o singură categorie folosind CSS:

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

Am introdus acest fragment de CSS în secțiunea "CSS suplimentar" din tema mea.

Categoria 1 este "Necategorizat", care este cea pe care am dorit să o ascund.

27 dec. 2019 22:18:21
Comentarii

Pentru a îndulci oferta, ascunde categoriile direct în personalizator. Economisește un pas încercând să faci asta din folderul temei.

klewis klewis
3 aug. 2021 23:14:12