函数文档

_wp_delete_post_menu_item()

💡 云策文档标注

概述

_wp_delete_post_menu_item() 是一个回调函数,用于在原始对象(如文章)被删除时,处理与之关联的导航菜单项。它通过获取关联的菜单项ID并调用 wp_delete_post() 来永久删除这些菜单项。

关键要点

  • 这是一个回调函数,用于处理菜单项在原始对象删除时的清理操作。
  • 参数 $object_id 是必需的整数,表示被删除的原始对象的ID。
  • 函数内部使用 wp_get_associated_nav_menu_items() 获取与对象关联的菜单项ID,然后遍历并调用 wp_delete_post() 永久删除这些菜单项。
  • 自 WordPress 3.0.0 版本引入。

代码示例

function _wp_delete_post_menu_item( $object_id ) {
    $object_id = (int) $object_id;

    $menu_item_ids = wp_get_associated_nav_menu_items( $object_id, 'post_type' );

    foreach ( (array) $menu_item_ids as $menu_item_id ) {
        wp_delete_post( $menu_item_id, true );
    }
}

注意事项

  • 此函数是内部回调,通常不应直接调用,而是由系统在删除对象时自动触发。
  • 确保 $object_id 是有效的整数,以避免错误。
  • 删除菜单项是永久性的,因为 wp_delete_post() 的第二个参数设置为 true。

📄 原文内容

Callback for handling a menu item when its original object is deleted.

Parameters

$object_idintrequired
The ID of the original object being trashed.

Source

function _wp_delete_post_menu_item( $object_id ) {
	$object_id = (int) $object_id;

	$menu_item_ids = wp_get_associated_nav_menu_items( $object_id, 'post_type' );

	foreach ( (array) $menu_item_ids as $menu_item_id ) {
		wp_delete_post( $menu_item_id, true );
	}
}

Changelog

Version Description
3.0.0 Introduced.