IT IS ACTUALLY WAAAY EASIER
<人力资源>
Simple solution :
在使用
wp_update_nav_menu_item 函数(见下文)我只是浏览了代码,看看如果管理员点击菜单项的“删除”链接,WP会做什么。
事实证明它只是调用wp_delete_post 对于特定的菜单项,就是这样。没有别的,没有花哨。因此,如果要删除菜单项,只需获取其db\\u id并调用该函数
wp_delete_post($menu_item_db_id);
nbsp;
为清楚起见,我将以前的解决方案留在这里,以向您保证,没有任何复杂的东西是真正必要的:
 ;
DO NOT USE ONE OF THE FOLLOWING, NOW OBSOLETE, USE THE SIMPLE ONE FROM ABOVE
<人力资源>
Version 1:
正在添加(
publishing) 菜单项很容易删除(
unpublishing) 也可以使用相同的功能完成。
我假设您使用了几乎没有文档记录的wp\\u update\\u nav\\u menu item函数(请参阅带有示例的帖子链接)以编程方式添加菜单项,并知道如何调用它,因此要删除它,您可以使用对象id和状态unpublish调用相同的函数
function removeMenuEntry($menu_id, $object_id, $menu_item_db_id) {
$itemData = array(
\'menu-item-object-id\' => $object_id,
\'menu-item-status\' => \'unpublish\'
);
return wp_update_nav_menu_item( $menu_id, $menu_item_db_id, $itemData );
}
$menu_id
是条目所在菜单的id,以及
$object_id
菜单条目唯一的WP id,您知道如何获取,正如您所说,您已经手动添加了一个条目,如果没有,请参阅我为WP\\u update\\u nav\\u menu\\u item函数提供的链接以查看示例。
上面的代码将取消发布该条目,这似乎正是您通过管理面板删除菜单条目时发生的情况。
Version 2:
之前我没有使用
$menu_item_db_id
只需将该值设置为零,对于
\'menu-item-type\' => \'taxonomy\'
, 但对于类型为的菜单项,相同的功能不起作用
\'menu-item-type\' => \'post_type\'
.在查看了一点WP源之后,似乎它在没有
$menu_item_db_id
设置更像是一种疏忽,正确的做法是使用它,因为零值将创建一个新的菜单项(在后一种情况下是这样的,显然没有标题或任何东西)。
上面的代码示例已经更新,现在对于分类法和post\\u类型菜单项应该可以正常工作。