函数文档

_wp_reset_invalid_menu_item_parent()

💡 云策文档标注

概述

_wp_reset_invalid_menu_item_parent() 是一个 WordPress 内部函数,用于防止菜单项被设置为其自身的父项。它在保存菜单项数据前调用,确保 menu_item_parent 字段的有效性。

关键要点

  • 函数检查菜单项数据数组,如果 menu_item_parent 被设置为与 ID 相同,则重置为 0。
  • 主要用于 nav-menus.php 中保存 _menu_item_menu_item_parent 前的数据验证。
  • 从 WordPress 6.2.0 版本开始引入。

代码示例

function _wp_reset_invalid_menu_item_parent( $menu_item_data ) {
	if ( ! is_array( $menu_item_data ) ) {
		return $menu_item_data;
	}

	if (
		! empty( $menu_item_data['ID'] ) &&
		! empty( $menu_item_data['menu_item_parent'] ) &&
		(int) $menu_item_data['ID'] === (int) $menu_item_data['menu_item_parent']
	) {
		$menu_item_data['menu_item_parent'] = 0;
	}

	return $menu_item_data;
}

📄 原文内容

Prevents menu items from being their own parent.

Description

Resets menu_item_parent to 0 when the parent is set to the item itself.
For use before saving _menu_item_menu_item_parent in nav-menus.php.

Parameters

$menu_item_dataarrayrequired
The menu item data array.

Return

array The menu item data with reset menu_item_parent.

Source

function _wp_reset_invalid_menu_item_parent( $menu_item_data ) {
	if ( ! is_array( $menu_item_data ) ) {
		return $menu_item_data;
	}

	if (
		! empty( $menu_item_data['ID'] ) &&
		! empty( $menu_item_data['menu_item_parent'] ) &&
		(int) $menu_item_data['ID'] === (int) $menu_item_data['menu_item_parent']
	) {
		$menu_item_data['menu_item_parent'] = 0;
	}

	return $menu_item_data;
}

Changelog

Version Description
6.2.0 Introduced.