_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.
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. |