Ich werde immer wieder gefragt, wie man denn eine Kategorie von der Shop-Seite bei WooCommerce verstecken kann.
Hier ist der einfache Codesnippet für euch:
Gebt den einfach in euer Functions.php File ein und ersetzt «unkategorisiert» mit dem Name eurer ungeliebten Kategorie. Dann speichert ihr es ab und lädt es via FTP hoch in euer Child-Ordner und voila – die Kategorie wird nicht mehr angezeigt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | add_filter( 'get_terms', 'exclude_category', 10, 3 ); function exclude_category( $terms, $taxonomies, $args ) { $new_terms = array(); if ( is_shop() ){ foreach ( $terms as $key => $term ) { if( is_object ( $term ) ) { if ( 'unkategorisiert' == $term->slug && $term->taxonomy = 'product_cat' ) { unset($terms[$key]); } } } } return $terms; } |
In einem Kommentar unten wurde ich gefragt, wie denn das ganze funktionieren würde, wenn man mehrere Kategorien ausblenden möchte und oder sogar solche aus einer anderen Sprache.
Die Antwort ist hier auch sehr einfach – passt einfach die Slug der zu versteckenden Kategorie an. Der die das Slug (weiss nicht wie es korrekt heisst) ist ja der einzigartige URL Abschnitt für die Kategorie. Die müsst ihr einfach auslesen und dann verwenden.
In diesem Fall habe ich jetzt die Kategorie haare, essen food und hair versteckt. Wie ihr sehen könnt es ist nicht so schwer. Ihr müsst einfach die IF Abfrage kopieren und unten hinzufügen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | add_filter( 'get_terms', 'exclude_category', 10, 3 ); function exclude_category( $terms, $taxonomies, $args ) { $new_terms = array(); if ( is_shop() ){ foreach ( $terms as $key => $term ) { if( is_object ( $term ) ) { if ( 'essen' == $term->slug && $term->taxonomy = 'product_cat' ) { unset($terms[$key]); } if ( 'haare' == $term->slug && $term->taxonomy = 'product_cat' ) { unset($terms[$key]); } if ( 'food' == $term->slug && $term->taxonomy = 'product_cat' ) { unset($terms[$key]); } if ( 'hair' == $term->slug && $term->taxonomy = 'product_cat' ) { unset($terms[$key]); } } } } return $terms; } |
„Wie versteckt man eine Kategorie bei WooCommerce“
Sehr nützlich, vielen dank für das Bereitstellen der Info!
Gibt es auch eine Möglichkeit, 2 Kategorien zu verstecken?
Wenn ich den Code doppelt reinwerfe bekomme ich nen Fehler ausgespuckt.
Vielen Dank, viele Grüße
Julia
add_filter( ‚get_terms‘, ‚exclude_category‘, 10, 3 );
function exclude_category( $terms, $taxonomies, $args ) {
foreach ( $terms as $key => $term ) :
if( is_object ( $term ) ) :
if ( ‚unkategorisiert‘ == $term->slug || ’showcase‘ == $term->slug ||’favourites‘ == $term->slug ) :
unset($terms[$key]);
endif;
endif;
endforeach;
return $terms;
}
Hallo Alex,
vielen Dank für den sehr hilfreichen Code!
Der Code zum Ausblenden einer Kategorie hat bei mir einwandfrei funktioniert. In meinem Fall müsste ich allerdings gleich mehrere Subkategorien ausblenden (teilweise sogar „Subsub“-Kategorien). Das scheint so ohne Weiteres leider nicht zu funktionieren…
Hast Du dafür auch etwas im Zauberkästchen? 🙂
Vielen lieben Dank vorab und ein schönes WE!
Liebe Grüße,
Linus
Herzlichen Dank für dieses nützliche Snippet. Damit konnte ich mein Problem lösen, dass manche Produkte kein Anfrage-Formular aufweisen sollten. Das betreffende Formular-Plugin erlaubte aber das Ausschliessen nur als ganze Kategorie. Einzelne Produkte aus Kategorien MIT Produkt-Anfrage-Formular , die es aber dennoch NICHT enthalten sollen, habe ich zusätzlich in die versteckte Kategorie gepackt. Diese versteckte Kategorie habe ich nun meinem Anfrage-Formular-Plugin als „exclude“ mitgeteilt. Resultat. alles prima!!!
es freut mich immer, wenn meine blogbeiträge meinen lesern helfen können 🙂
Mir hat’s auch geholfen. Vielen Dank! Kannst Du mir evtl. auch noch mit einem Codeschnipsel weiterhelfen, der auch die Produkte der ausgeblendeten Kategorie ausblendet? Ich habe ein Pfandglas, das nur als verlinktes Produkt mit verkauft werden soll. Danke und Gruß, Alexander
ähm wenn eine kategorie versteckt ist, dann muss man da doch auch nicht die produkte ausblenden? oder wie meinst du das?
Guten Tag,
danke erstmal für den guten Beitrag – Kategorie wird ausgeblendet. In meinem Fall werden „Gutscheine“ nicht im Shop mehr als Kategorie angezeigt (Sidebar links) – allerdings werden die Gutscheine selbst als Produkte mit angezeigt, obgleich die Kategorie nicht sichtbar ist.
Wie kann man das denn umgehen?
Hallo Herr Mächler
wir blenden wöchentlich eine Kategorie per Script aus und dafür eine andere ein. Die Produkte sind zum Teil verschiedenen/mehreren Kategorien zugeordnet.
Können Sie mir sagen, ob ein Podukt automatisch auch in der Produktsuche nicht mehr gefunden wird, sofern keine einzige der Kategorien, in der der es sich befindet, angezeigt wird?
Alternativ müssten wir ein Script machen, dass nach der Aktivierung/Deaktivierung immer alle Artikel durchläuft und prüft, ob ein Produkt deaktiviert werden muss.
guten morgen, nun es kommt ganz drauf an wie sie ihre kategorien verstecken. normalerweise aber sind die produkte auch bei einer versteckten kategorie noch sichtbar. ich würd mal checken ob die suchfunktion (eine schwachstelle von wordpress) hier korrekt eingestellt ist
Endlich hab ich was brauchbares gefunden! 😀
Danke dir, hat mir echt gut geholfen.
Viele Grüße
funktioniert leider gar nicht
kommt ganz darauf an was du für ein theme hast und wie du den shop aufgebaut hast. dieser code funktioniert perfekt für den alten weg – wo woocommerce eine funktion eingebaut hatte- mit dem man die kategorien in der shop seite anzeigen konnte. heute ist das meistens überflüssig, da man die kategorien mit den meisten theme einzeln auswählen oder deaktivieren kann.
tut mir leid, wenn dieser code nicht das ist was du suchst
hallo, eine Frage…
ich habe zwei Hauptkategorien in meinem Shop
1x doterra
1x Sabines Zubehör Shop
für beide habe ich ein spezielles design… ich bin erst am befüllen des Shops
Ich würde gerne wenn ich auf die doterra-kategorie klicke alle Subkategorien bei Zubehör Shop ausblenden….
klickt man dann aber auf Zubehör-Shop verschwinden die Subkategorien der Hauptkategorie doterra und subkategorien Zubehör-Shop sind wieder sichtbar…kann man diesen Code hier etwas adaptieren?
Das Such-Tool soll unbeeinflusst bleiben, das kann ruhig weiterhin alles suchen und finden.
hoffe das war einigermaßen verständlich… lg sabine
was für ein theme setzt du ein? evtl sogar ein pagebuilder?
Das theme ist divi von elegant themes, ich hatte deswegen an den support geschrieben, aber sie waren da nicht bereit weiterzuhelfen, weil das zum woo commerce gehört… so oder so ähnlich die Antwort.
Sie sind ja sonst großartig im Service.
divi? na dann ist die antwort sogar noch einfacher – du kannst doch im divi builder für kategorien eine eigene seite erstellen. also kannst dir da recht schnell alles zusammenbauen
Ja das habe ich schon gemacht…also das bei doterra nur die doterra Artikel kommen und bei Sabines Zubehör auch nur mein Zubehör…nur mit dem Widget auf der Seitenleiste…da wäre ein Traum wenn immer die gerade aktive Hauptkategorie mit Unterkategorien angezeigt wird…und die zweite Hauptkategorie ohne Unterkategorien…
ich möcht gern beide Hauptkategorien in der Seitenleiste lassen damit der Kunde immer noch zu doterra springen kann…wenn er will…
Hallo Eric,
ich konnte eine Kategorie mit deinem Code erfolgreich ausblenden! Danke dafür.
Jetzt ist es aber so dass meine Seite zweisprachig ist und die Kategorie auf DE und EN (mit Ergänzung -en) existiert.
Dein Code dafür mehrere Kategorien auszublenden führt leider zu einer Fehlermeldung. Hast du da vielleicht noch einen anderen Tipp?
Liebe Grüße
Alina
Hallo Alina
Danke für deine Frage – ich habe den Beitrag gerade erweitert mit der Erklärung wie man mehrere Kategorien ausblenden kann und sogar welche in anderen Sprachen.
Denke du solltest jetzt wissen wie du das für dich anpassen kannst damit es ohne Fehlermeldung funktioniert.
Super! Das erste Code-Snippet, das zu diesem Thema funktioniert hat!!
Danke!
Hi, das hat mega gut geklappt!
Ich hab bei mir leider eine Dopplung von der Kategorie „Für Sie“/“Für Ihn“
ist das auch off zu schalten? Ich weis leider nicth wo ich die Kategorie noch eingeschaltet habe, vlt weiß jmd anders was ich blöderweise eingeschaltet hab.
Ich danke für eure Hilfe, ich denke ich hab Produkt Kategorie und oder Woocommerce Kategorie beide eingestellt, finde es aber grd nicth auf die Schnelle.
Hi,
danke für dein Snippet. Aber wie und wo lade ich die „Functions.php“ hoch?
Ich weiss nicht wo ich das hochladen soll, und konnte bisher nichts finden.
Aber danke für das Snippet schonmal!
grüße
okay, wollte nur mitteilen das ich es unter Design -> Themen Editor und dann functions.php gefunden habe 🙂
Hat sich damit erledigt.
Hallo. Eric
Mal eine spezielle Frage
Ich habe eine Website die für Pizzakuriere ist wo dann mehrere Anbieter sind.
Wie kann ich die Kategorien so anzeigen zu lassen das nur die Kategorien sichtbar sind in denen der jeweiliger Verkäufer seine Produkte verkauft.
Im Frontend muss man zuerst seine Adresse eingeben und den jeweiligen Anbieter aus wählen. Sobald ich das mache werden eben auch die -Kategorien aufgelistet in denen der Verkäufer keine Produkte verkauft.
hm… ne schnelle lösung fällt mir hier nicht ein. ob ein multi vendor plugin dir helfen würde – könntest da mal schauen. aber ich denke für sowas wäre das fast ein overkill…. hier wirst du was programmieren müssen….