So erstellen Sie dynamisch ein Menü mit Produktkategorie in WordPress

Lesezeit: 3 Minuten

Ich habe eine Frage: Kann ich ein Menü mit Produktkategorie mit einem Klick oder dynamisch in WordPress erstellen? Ich habe viele Kategorien und es ist sehr zeitaufwändig, dies zu erstellen
Ich habe ein Plugin dafür gefunden:

https://awesometogi.com/dynamic-menu-product-categories/

aber ich weiß nicht, wie das funktioniert

Sie können dies mit ein wenig Code tun, indem Sie erzwingen, dass WooCommerce-Kategorien einer bestimmten Menü-ID hinzugefügt werden.

Fügen Sie dies zur Datei „functions.php“ Ihres Themes hinzu:

function _custom_nav_menu_item( $title, $url, $order, $parent = 0 ){
  $item = new stdClass();
  $item->ID = 1000000 + $order + $parent;
  $item->db_id = $item->ID;
  $item->title = $title;
  $item->url = $url;
  $item->menu_order = $order;
  $item->menu_item_parent = $parent;
  $item->type="";
  $item->object="";
  $item->object_id = '';
  $item->classes = array();
  $item->target="";
  $item->attr_title="";
  $item->description = '';
  $item->xfn = '';
  $item->status="";
  return $item;
}
add_filter("wp_get_nav_menu_items", function ($items, $menu, $args) {
    if( $menu->term_id != 24 ) return $items; // Where 24 is Menu ID, so the code won't affect other menus.

    // don't add child categories in administration of menus
    if (is_admin()) {
        return $items;
    }
    $ctr = ($items[sizeof($items)-1]->ID)+1;
    foreach ($items as $index => $i)
    {
        if ("product_cat" !== $i->object) {
            continue;
        }
        $menu_parent = $i->ID;
        $terms = get_terms( array('taxonomy' => 'product_cat', 'parent'  => $i->object_id ) );
        foreach ($terms as $term) {
            $new_item = _custom_nav_menu_item( $term->name, get_term_link($term), $ctr, $menu_parent );
            $items[] = $new_item;
            $new_id = $new_item->ID;
            $ctr++;
            $terms_child = get_terms( array('taxonomy' => 'product_cat', 'parent'  => $term->term_id ) );
            if(!empty($terms_child))
            {
                foreach ($terms_child as $term_child)
                {
                    $new_child = _custom_nav_menu_item( $term_child->name, get_term_link($term_child), $ctr, $new_id );
                    $items[] = $new_child;
                    $ctr++;
                }
            }
        }
    }

    return $items;
}, 10, 3);

Beachten Sie im obigen Code die $menu->term_id != 24 Teil. Ändern Sie dann den Wert von 24 mit Ihrer Menü-ID.

Der obige Code schließt auch leere Produktkategorien aus.

Es gibt auch ein Plugin, das das Gleiche kann und nicht nur Produktkategorien: https://wordpress.org/plugins/jc-submenu/

  • Code funktioniert nicht, meine Menü-ID ist „wp-admin/nav-menus.php?menu=386“

    – Sushiant

    7. Okt. 2019 um 15:24


  • Deshalb statt 24 In diesem Code würden Sie nur hinzufügen 386. Wenn das nicht funktioniert, weiß ich nicht, wie ich das Problem beheben kann. Versuchen Sie herauszufinden, ob Fehler vorliegen. Oder vielleicht hilft dieses Plugin.

    – MistaPrime

    7. Okt. 2019 um 16:07 Uhr

  • @MistaPrime, deine Antwort war eine RIESIGE Hilfe bei der Lösung des gleichen Problems, das ich hatte. Das Einzige, was Sie nicht erwähnt haben, war, dass wir die anfänglichen Produktkategorien (oberste Ebene) manuell hinzufügen mussten und dann Ihr Skript einsetzt, um sie mit ihren Unterkategorien zu füllen. Was ich gerade untersuche, ist eine Möglichkeit, 1. es vollständig dynamisch zu machen – so, dass sogar die Kategorien auf der Anfangs-/obersten Ebene erstellt werden, und 2. dafür zu sorgen, dass es die aktuelle Seite identifiziert, damit es hinzugefügt wird die richtige Formatierungsklasse für die Kategorie der obersten Ebene, wenn sie sich in einer Unterkategorie darunter befindet (wenn Sie verstehen, was ich meine) …

    – Faye D.

    6. Dezember 2021 um 4:57


  • @FayeD. Konnten Sie es vollständig dynamisch machen?

    – ptrcao

    19. März 2022 um 15:03 Uhr

  • @ptrcao brauchst du dabei noch Hilfe?

    – Andrew Schultz

    12. April 2022 um 5:05 Uhr

1451010cookie-checkSo erstellen Sie dynamisch ein Menü mit Produktkategorie in WordPress

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy