我正在使用此功能
$args = array (
\'order\' => \'DESC\',
);
$items = wp_get_nav_menu_items( $custom_menu, $args );
然后,如果我将args更改为$args = array (
\'order\' => \'ASC\',
);
结果还是一样的。有人有什么建议吗?
我正在使用此功能
$args = array (
\'order\' => \'DESC\',
);
$items = wp_get_nav_menu_items( $custom_menu, $args );
然后,如果我将args更改为$args = array (
\'order\' => \'ASC\',
);
结果还是一样的。有人有什么建议吗?
当您查看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
作为我上一次关于菜单的未解决查询的后续,这个问题已经进一步扩展。我的菜单没有打印代码中的任何地方。我正在注册菜单功能。php:add_action( \'after_setup_theme\', \'your_newtheme_setup\' ); if ( ! function_exists( \'your_newtheme_setup\' ) ) : function your_newtheme_setup() { if (