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/