我有一个包含页面和类别的菜单。我需要循环浏览菜单,如果它找到一个类别,会自动将所有子类别添加为子菜单。
Page 1 | Page 2 | Custom Link
Category 1
Category 2
Child Category
在上面的示例中,我需要将子类别动态添加到此菜单中我有一个包含页面和类别的菜单。我需要循环浏览菜单,如果它找到一个类别,会自动将所有子类别添加为子菜单。
Page 1 | Page 2 | Custom Link
Category 1
Category 2
Child Category
在上面的示例中,我需要将子类别动态添加到此菜单中您可以使用过滤器添加它们wp_get_nav_menu_items
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);
我想知道是否有办法定制wp管理/导航菜单。php,以便我可以添加自己的额外字段或选项卡。例如,我想为用户创建的每个菜单创建一个新选项卡(菜单设置)。我觉得如果在创建的每个菜单上都附加了特定的设置,会更加方便用户。这可能吗?目前,我正在按主题选项进行此操作,但它有局限性:(