我刚刚注意到我的菜单项 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/