sort_menu

The timeline below displays how wordpress function sort_menu has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.3

/**
 * @global array $menu_order
 * @global array $default_menu_order
 *
 * @param array $a
 * @param array $b
 * @return int
 */
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;
    }
}

WordPress Version: 5.1

/**
 * @global array $menu_order
 * @global array $default_menu_order
 *
 * @param array $a
 * @param array $b
 * @return int
 */
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;
    }
}

WordPress Version: 4.3

/**
 *
 * @global array $menu_order
 * @global array $default_menu_order
 *
 * @param array $a
 * @param array $b
 * @return int
 */
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;
    }
}

WordPress Version: 3.7

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