我需要获取主导航菜单中项目的编号。我需要这个来确定每个列表项的宽度百分比。因此,我还需要以某种方式更改/添加列表项的css宽度属性,我还没有弄清楚如何做。。。作为第一次尝试,我尝试了这个函数wp_get_nav_menu_object. 我正在根据215模板开发一个儿童主题。我制作了一个自定义主页,在这里加载主导航(直接从原始主题文件夹中的sidebar.php文件复制),然后使用代码片段直接调用wp\\u get\\u nav\\u menu\\u object
<?php if (has_nav_menu(\'primary\')) : ?>
<nav id="site-navigation" class="main-navigation" role="navigation">
<?php
// Primary navigation Menu
wp_nav_menu(array(
\'menu_class\' => \'nav-menu\',
\'theme_location\' => \'primary\',
));
// none of these seem to work...
//$menu = wp_get_nav_menu_object(\'menu-primary-menu\');
$menu = wp_get_nav_menu_object(\'primary\');
echo $menu->count;
?>
</nav> <!-- /.main-navigation -->
<?php endif; ?>
我知道我可以使用jQuery/JavaScript解决方案(实际上我现在正在做),但这并不理想。我开始怀疑,为了实现我的目标,我需要在Walker类的帮助下创建自己的自定义主导航菜单。谁能告诉我最好的方法是什么?
最合适的回答,由SO网友:cybmeta 整理而成
您没有为提供正确的参数wp_get_nav_menu_object()
作用它需要菜单ID或菜单slug,但您提供的是菜单主题位置。很明显,我不能告诉你菜单的ID或slug是什么。
获取分配给主题位置的菜单的菜单ID的一种方法是使用get_nav_menu_locations()
:
$menu = wp_get_nav_menu_object( get_nav_menu_locations()[\'primary\'] );
echo $menu->count;