php - 当有多个菜单时,丢失页面 id 在 li 的菜单上

标签 php wordpress

我创建了一个在页面上输出的菜单...菜单的每个 li 都有页面 ID 作为 id 允许我定位特定的 的。

当我为同一个菜单添加第二个和第三个位置时,所有的 id 都消失了,所以我的很多样式都搞砸了,因为它不再输出 id。 当有多个菜单时,如何取回这些?

我正在使用以下方法注册 3 个菜单位置:

// Register our themes menu locations
function register_menus() {
    register_nav_menu('primary-menu', __('Primary Menu'));
    register_nav_menu('mobile', __('Mobile Menu'));
    register_nav_menu('products', __('Products Menu'));        
    register_nav_menu('footer-menu', __('Footer Menu'));
}
add_action('init', 'register_menus');

将相同的菜单分配给 3 个位置:

enter image description here

然后在我的模板中输出以下内容:

<?php if ( has_nav_menu( 'primary-menu' ) ) {
wp_nav_menu( array(
  'container'=>'div',
  'menu_class'=>'1',
  'theme_location' => 'primary-menu',
  'walker' => new CSS_Menu_Maker_Walker(),
  'items_wrap' => '<ul class="primary-menu-1">%3$s</li></ul>'
));
} ?>


<?php if ( has_nav_menu( 'mobile' ) ) {
  wp_nav_menu( array(
    'container'=>'div',
    'menu_class'=>'2',
    'theme_location' => 'mobile',
    'walker' => new CSS_Menu_Maker_Walker(),
    'items_wrap' => '<ul class="primary-menu-2">%3$s</li></ul>'
  ));
} ?>


<?php if ( has_nav_menu( 'products' ) ) {
  wp_nav_menu( array(
    'container'=>'div',
    'menu_class'=>'3',
    'theme_location' => 'products',
    'walker' => new CSS_Menu_Maker_Walker(),
    'items_wrap' => '<ul class="primary-menu-3">%3$s</li></ul>'
  ));
} ?>

最佳答案

向每个菜单实例添加 'menu'=>'my-class-name', 将它们带回来。

关于php - 当有多个菜单时,丢失页面 id 在 li 的菜单上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52188572/

相关文章:

javascript - WordPress - 标题位置顶部、左侧和右侧

mysql - AWS ec2 WordPress 由 Bitnami 实例 mysql 密码提供支持

javascript - 滚动到下一个 <div> 使用 jQuery 使用 css::after 元素

php - 如何运行具有多个值的删除sql查询

php - 在函数内的 ECHO 内调用 PHP 函数

php - 插入记录时出错无法添加或更新子行 : a foreign key constraint fails

javascript - 将复杂的 html/css/js 元素添加到单个 Wordpress 页面

php - SQL 删除语法错误,还有一些 PHP 和 Jquery

php - 有PHP验证器吗?

javascript - 在functions.php中执行document.ready