sort_menu()
云策文档标注
概述
sort_menu() 是 WordPress 中用于排序菜单项的内部函数,基于全局变量 $menu_order 和 $default_menu_order 进行比较。它接受两个数组参数,返回整数表示排序顺序。
关键要点
- 函数参数:$a 和 $b,均为必需数组,用于表示待比较的菜单项。
- 返回值:整数,-1 表示 $a 排在 $b 前,1 表示 $a 排在 $b 后,0 表示相等。
- 排序逻辑:基于 $menu_order 全局变量,优先处理有定义的菜单项,若两者都有定义则比较顺序值。
代码示例
function sort_menu( $a, $b ) {
global $menu_order, $default_menu_order;
$a = $a[2];
$b = $b[2];
if ( isset( $menu_order[ $a ] ) && ! isset( $menu_order[ $b ] ) ) {
return -1;
} elseif ( ! isset( $menu_order[ $a ] ) && isset( $menu_order[ $b ] ) ) {
return 1;
} elseif ( isset( $menu_order[ $a ] ) && isset( $menu_order[ $b ] ) ) {
if ( $menu_order[ $a ] === $menu_order[ $b ] ) {
return 0;
}
return ( $menu_order[ $a ] < $menu_order[ $b ] ) ? -1 : 1;
}
}注意事项
此函数是 WordPress 核心内部函数,通常不建议直接调用,开发者应通过 WordPress 提供的 API 或 Hook 来管理菜单排序。
原文内容
Parameters
$aarrayrequired$barrayrequired
Source
function sort_menu( $a, $b ) {
global $menu_order, $default_menu_order;
$a = $a[2];
$b = $b[2];
if ( isset( $menu_order[ $a ] ) && ! isset( $menu_order[ $b ] ) ) {
return -1;
} elseif ( ! isset( $menu_order[ $a ] ) && isset( $menu_order[ $b ] ) ) {
return 1;
} elseif ( isset( $menu_order[ $a ] ) && isset( $menu_order[ $b ] ) ) {
if ( $menu_order[ $a ] === $menu_order[ $b ] ) {
return 0;
}
return ( $menu_order[ $a ] < $menu_order[ $b ] ) ? -1 : 1;
} else {
return ( $default_menu_order[ $a ] <= $default_menu_order[ $b ] ) ? -1 : 1;
}
}