_sort_nav_menu_items()
云策文档标注
概述
_sort_nav_menu_items() 是一个已弃用的 WordPress 函数,用于根据指定属性对导航菜单项进行排序。它已被 wp_list_sort() 替代,开发者应迁移到新函数。
关键要点
- 函数 _sort_nav_menu_items( $a, $b ) 接受两个对象参数,比较其属性值以返回排序顺序。
- 自 WordPress 4.7.0 起已弃用,建议使用 wp_list_sort() 替代。
- 依赖全局变量 $_menu_item_sort_prop 来指定排序属性,如果未设置或属性不存在,则返回 0。
- 返回值为 -1、0 或 1,分别表示 $a 小于、等于或大于 $b。
代码示例
function _sort_nav_menu_items( $a, $b ) {
global $_menu_item_sort_prop;
_deprecated_function( __FUNCTION__, '4.7.0', 'wp_list_sort()' );
if ( empty( $_menu_item_sort_prop ) )
return 0;
if ( ! isset( $a->$_menu_item_sort_prop ) || ! isset( $b->$_menu_item_sort_prop ) )
return 0;
$_a = (int) $a->$_menu_item_sort_prop;
$_b = (int) $b->$_menu_item_sort_prop;
if ( $a->$_menu_item_sort_prop == $b->$_menu_item_sort_prop )
return 0;
elseif ( $_a == $a->$_menu_item_sort_prop && $_b == $b->$_menu_item_sort_prop )
return $_a < $_b ? -1 : 1;
else
return strcmp( $a->$_menu_item_sort_prop, $b->$_menu_item_sort_prop );
}注意事项
- 此函数已弃用,新代码应避免使用,并更新现有代码以使用 wp_list_sort()。
- 确保 $_menu_item_sort_prop 全局变量已正确设置,否则排序可能无效。
- 函数内部使用 _deprecated_function() 标记弃用,开发时注意相关警告。
原文内容
Sort menu items by the desired key.
Parameters
$aobjectrequired-
The first object to compare
$bobjectrequired-
The second object to compare
Source
function _sort_nav_menu_items( $a, $b ) {
global $_menu_item_sort_prop;
_deprecated_function( __FUNCTION__, '4.7.0', 'wp_list_sort()' );
if ( empty( $_menu_item_sort_prop ) )
return 0;
if ( ! isset( $a->$_menu_item_sort_prop ) || ! isset( $b->$_menu_item_sort_prop ) )
return 0;
$_a = (int) $a->$_menu_item_sort_prop;
$_b = (int) $b->$_menu_item_sort_prop;
if ( $a->$_menu_item_sort_prop == $b->$_menu_item_sort_prop )
return 0;
elseif ( $_a == $a->$_menu_item_sort_prop && $_b == $b->$_menu_item_sort_prop )
return $_a < $_b ? -1 : 1;
else
return strcmp( $a->$_menu_item_sort_prop, $b->$_menu_item_sort_prop );
}
Changelog
| Version | Description |
|---|---|
| 4.7.0 | Deprecated. Use wp_list_sort() |
| 3.0.0 | Introduced. |