所以,我今天在添加一些管理菜单栏链接时遇到了一个有趣的问题。使用以下方式向父菜单添加链接时:
// Add the parent menu
$wp_admin_bar->add_menu( array(
\'title\' => \'Testing MENU\',
\'href\' => false,
\'id\' => \'parent_id\'
));
// Add the child menu
$wp_admin_bar->add_menu( array(
\'title\' => \'My Child Label\',
\'href\' => \'#\',
\'parent\' => \'parent_id\'
));
上面的代码工作得很好,正如预期的那样。但如果出于任何原因,我想添加第二个子菜单项,比如:
// Add another child menu
$wp_admin_bar->add_menu( array(
\'title\' => \'My Child Label *\',
\'href\' => \'#\',
\'parent\' => \'parent_id\'
));
这行不通。最后一个菜单项替代第一个菜单项。我知道你想防止管理菜单中出现重复的标题,但从技术上讲,这不是重复的标题。要使其正常工作,我必须在末尾添加一个非特殊字符(a-z,a-z,0-9),如下所示:
// Add another child menu
$wp_admin_bar->add_menu( array(
\'title\' => \'My Child Label *1\',
\'href\' => \'#\',
\'parent\' => \'parent_id\'
));
看起来,检查重复标签的逻辑是从标题末尾去掉任何非字母数字字符,然后进行比较。有人知道这是为什么吗?我想不出任何理由不考虑整个标题。
有什么想法吗?