WordPress 5.3 开始不再支持使用整数作为菜单slug别名

虎皮椒-个人微信和支付宝支付接口


之前,菜单可以使用整数slug进行注册,但是这样导致了难以调试的意外问题。例如,假设我们通过 register_nav_menus 函数使用了下面的代码注册菜单:


register_nav_menus(
array(
\'primary\' => \'Primary\',
1 => \'First\',
2 => \'Second\',
)
);

按照正常的情况下,上面的 1 对应的应该是 \'First\' 菜单,但实际得到的结果并不是这样,而是和下面一样:


array(
\'primary\' => \'Primary\',
0 => \'First\',
1 => \'Second\',
)

也就是说,当你通过 wp_nav_menu( array( \'theme_location\' => 1 ) ) 调用菜单的时候,输出的可能不是 First 菜单,而是 Second 菜单。显然,这不是我们想要的结果。


这是因为WordPress使用 array_merge() 将新的导航菜单位置添加到全局 $_wp_registered_nav_menus 变量。而 array_merge() 会重命名数字索引,在结果数组中从零开始递增键名,所以就导致了上面的情况。


所以,从 WordPress 5.3 开始,将不再支持使用整数作为菜单的slug。如果仍旧采用,WP就会通过 _doing_it_wrong() 显示一个警告信息,告知开发人员需要采用字符串作为slug进行菜单注册。


如果你想了解如何注册菜单,可以看下文章《WordPress导航菜单函数register_nav_menus() 和 wp_nav_menu()》

测试
喔喔竹 » WordPress 5.3 开始不再支持使用整数作为菜单slug别名

提供最优质的资源集合

立即查看 了解详情
©2019|喔喔竹www.oozhu.com|粤ICP56421396号