# 找出同一菜单里重复指向的项
wp db query "SELECT menu_id, object_id, COUNT(*) c FROM wp_term_relationships tr JOIN wp_posts p ON p.ID=tr.object_id WHERE p.post_type='nav_menu_item' GROUP BY menu_id, p.menu_item_object_id HAVING c>1;"

主导航里 关于我们 出现两条,点哪条都正常。后台菜单列表里也确实有两条,ID 不同,指向同一个页面。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,添加菜单项时连点了两次 Add to Menu,后台每次都会新建一个 nav_menu_item,不做去重。两条记录各有 menu_order,输出时都保留。

「菜单项重复」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。

接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。偶发问题先统计频率,一小时几次和一天一次,查法完全不同。

处理上按这个顺序:后台删掉多余那条 保留 menu_order 靠前的一个;添加按钮加防重复提交 或者提交后禁用;用脚本扫一遍同 object_id 同菜单的重复项。

改完只确认一件事:导航里每个页面只出现一次,后台菜单条数和页面数对应。

作者 9823189