函数文档

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

Return

int

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;
	}
}