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