Dynamically add sub-categories to any category in the menu

Home Forums WordPress Dynamically add sub-categories to any category in the menu

  • This topic is empty.
Viewing 1 post (of 1 total)
  • Author
    Posts
  • #3701
    Techy Online
    Keymaster

    add_filter(“wp_get_nav_menu_items”, function ($items, $menu, $args) {

    // don’t add child categories in administration of menus
    if (is_admin()) {
    return $items;
    }

    foreach ($items as $index => $i) {

    if (“category” !== $i->object) {
    continue;
    }

    $term_children = get_term_children($i->object_id, “category”);

    // add child categories

    foreach ($term_children as $index2 => $child_id) {

    $child = get_term($child_id);

    $url = get_term_link($child);

    $e = new \stdClass();

    $e->title = $child->name;
    $e->url = $url;
    $e->menu_order = 500 * ($index + 1) + $index2;
    $e->post_type = “nav_menu_item”;
    $e->post_status = “published”;
    $e->post_parent = $i->ID;
    $e->menu_item_parent = $i->ID;
    $e->type = “custom”;
    $e->object = “custom”;
    $e->description = “”;
    $e->object_id = 0;
    $e->db_id = 0;
    $e->ID = 0;
    $e->classes = array();

    $items[] = $e;

    }

    }

    return $items;

    }, 10, 3);

Viewing 1 post (of 1 total)
  • You must be logged in to reply to this topic.