php - wordpress 菜单中缺少菜单项 ID

标签 php jquery css wordpress menu

我刚刚注意到我的菜单项 ID 不是由 wordpress 生成的。

我希望它是这样的

<li id='menu-item-2091' class='menu-item menu-item-209'>
<a href='www.mysite.com/members/<?php echo $user_info->user_login; ?>'>Profile</a></li>

但我在没有菜单项 ID 的情况下得到了这个。

<li class='menu-item menu-item-209'>
<a href='www.mysite.com/members/<?php echo $user_info->user_login; ?>'>Profile</a></li>

此错误发生在我的主菜单中,但我的顶级菜单似乎正确生成了菜单项 ID。

我环顾了菜单区域,找不到任何线索,为什么??

最佳答案

这是一个破解它的过滤器

add_filter ('wp_nav_menu_items','gfb_missing_id_fix', 10, 2);
function gfb_missing_id_fix($menu, $args) {
    if($args->theme_location == "primary-menu"){
      $dom = new DOMDocument;
      $dom->loadHTML($menu);
      foreach($dom->getElementsByTagName('li') as $element ) {
        $classes = $element->getAttribute("class");
        preg_match("/menu-item-\d+/", $classes, $output_array);
        $element->setAttribute("id", $output_array[0]);
      }
      $menu = $dom->saveHTML();
    }
    return $menu;
}

关于php - wordpress 菜单中缺少菜单项 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30843240/

相关文章:

php - 使用 Artisan 调用 php artisan migrate

php - 根据另一个 SQL PHP 的结果从一个表中获取数据

javascript - jQuery 查找具有类的 span 并隐藏几个父级的 div

jquery - 如何在 jQuery 中替换我选择的文本?

html - 如何创建三 Angular 形并将其用作工具提示中的箭头

javascript - Vue.js 动态 &lt;style&gt; + 变量

javascript - AngularJS 从 ng-repeat 创建的表单中选择值

java - Java 中的查询生成器

javascript - 将日期和天气代码从中文翻译成英文

PHP 截断小数点