rest_insert_nav_menu_item
云策文档标注
概述
rest_insert_nav_menu_item 是一个 WordPress REST API 钩子,在通过 REST API 创建或更新单个菜单项后触发。它允许开发者在菜单项操作完成后执行自定义代码。
关键要点
- 触发时机:在通过 REST API 成功创建或更新单个菜单项后立即执行。
- 参数:接收三个参数:$nav_menu_item(插入或更新的菜单项对象)、$request(WP_REST_Request 请求对象)和 $creating(布尔值,创建时为 true,更新时为 false)。
- 用途:常用于扩展菜单项功能,如添加自定义元数据、日志记录或触发其他操作。
- 相关函数:与 WP_REST_Menu_Items_Controller 的 create_item() 和 update_item() 方法关联。
- 版本:从 WordPress 5.9.0 版本开始引入。
代码示例
add_action( 'rest_insert_nav_menu_item', 'my_custom_nav_menu_item_action', 10, 3 );
function my_custom_nav_menu_item_action( $nav_menu_item, $request, $creating ) {
// 检查是否为创建操作
if ( $creating ) {
// 执行创建后的自定义逻辑,例如记录日志
error_log( 'Menu item created: ' . $nav_menu_item->title );
} else {
// 执行更新后的自定义逻辑,例如更新相关缓存
wp_cache_delete( 'nav_menu_' . $nav_menu_item->ID, 'menu' );
}
}注意事项
- 此钩子仅在通过 REST API 操作时触发,不适用于 WordPress 管理界面中的菜单项编辑。
- 参数 $creating 可用于区分创建和更新操作,便于针对不同场景编写逻辑。
- 确保回调函数高效执行,避免影响 REST API 响应性能。
原文内容
Fires after a single menu item is created or updated via the REST API.
Parameters
$nav_menu_itemobject-
Inserted or updated menu item object.
$requestWP_REST_Request-
Request object.
$creatingbool-
True when creating a menu item, false when updating.
Source
do_action( 'rest_insert_nav_menu_item', $nav_menu_item, $request, true );
Changelog
| Version | Description |
|---|---|
| 5.9.0 | Introduced. |