函数文档

_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

Return

int -1, 0, or 1 if $a is considered to be respectively less than, equal to, or greater than $b.

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.