Count top level menu items

时间:2018-11-12 作者:Usce

我需要得到顶级菜单项的数量。

我有5项菜单,其中有1个子菜单。这是目前的情况,但使用我正在构建的主题的用户可能有一些不同的数字。我在主题定制器中创建选项,我需要为每个项目创建选项。

我尝试使用如下代码:

    $menu_object = wp_get_nav_menu_object("Main menu");
    $menu_items_count = $menu_object->count;

    for($x = 1; $x <= $menu_items_count; $x++){
        $wp_customize->add_setting( \'menu_icon_\' . $x, array( 
            \'default\' => \' \'
         ) );
        $wp_customize->add_control( new WP_Customize_Control( $wp_customize, \'menu_icon_\' . $x, array(
            \'label\' => \'Menu icon\' . $x,
            \'section\' => \'menu_icons\',
            \'settings\' => \'menu_icon_\' . $x,
        ) ) );
    }
但我在这里创建了6个选项,而不是5个,因为在这里$menu_object->count; 计数子菜单。

1 个回复
SO网友:Kristián Filo

我不确定是否有一些本机函数用于此,但您可以这样做:

$menu_object = wp_get_nav_menu_object("Main menu");
$menu_items = wp_get_nav_menu_items($menu_object->term_id);
$menu_items_count = 0;

foreach ( (array) $menu_items as $key => $menu_item ) {
    if ($menu_item->menu_item_parent == 0 ) $menu_items_count++;
}

结束

相关推荐

在带有PHP的子主题中包含style.css

在里面https://codex.wordpress.org/Child_Themes 这是包含样式的最佳实践。css在子主题中,必须将下面的代码放入函数中。php的子主题,但将“父样式”替换为可以在函数中找到的父主题的参数。父主题的php。我在我的主题文件中找不到它,那里也没有多少代码。使用@import包含父主题样式表的方法不适用于我,放入文件的css不会在任何浏览器的站点上显示自己。function my_theme_enqueue_styles() { $parent_s