当您查看WordPress源代码时,您将找到原因。导航菜单第538行。php您将发现:
if ( ARRAY_A == $args[\'output\'] ) {
$GLOBALS[\'_menu_item_sort_prop\'] = $args[\'output_key\'];
usort($items, \'_sort_nav_menu_items\');
$i = 1;
foreach( $items as $k => $item ) {
$items[$k]->$args[\'output_key\'] = $i++;
}
}
我没有检查原因,但看起来排序不正确。要解决此问题,最简单的方法是更改输出类型以禁用此排序。
所以当你添加\'output\'=>OBJECT
或\'output\'=>ARRAY_N
对你的args来说,它应该工作得很好。
附:这甚至是已知的bug:http://core.trac.wordpress.org/ticket/15533