WordPress - 如果页面标题更改,自动更新菜单标题

WordPress - Automatically update menu title if page title gets changed

我想做的很简单,我认为这是WordPress的标准功能,它工作了很长时间,但现在坏了。

假设我创建了一个名为 'Contact' 的新页面并将此页面添加到现有菜单,菜单标题将显示为 'Contact'。

之后我将编辑页面并将页面标题更改为 'Contact us'。我希望菜单标题现在是 'Contact us',但它仍然是 'Contact'。

我知道我可以手动更改菜单标题(外观 > 菜单),但我希望它自动更改。

菜单在主题的 functions.php 中注册:

register_nav_menus(array(
  'main-navigation' => __('Main navigation')
));

主题代码发生了变化,但 none 应该会对菜单产生影响。我几天前安装了插件'WooCommerce',也许这对菜单有影响?

编辑:我发现它只影响现有页面,这些页面的标题中有一个连字符。但是为什么?!

WordPress 似乎自动将连字符转换为破折号。我创建了一个新页面,页面标题如下:

Foo - Bar

但是,当我查看菜单标题(外观 > 菜单)时,我发现标题显示为:

Foo – Bar

该页面以自定义菜单标题(带有连字符的页面标题和带有破折号的菜单标题)存储在数据库中,这就是为什么当我更改页面标题时菜单标题不会更新的原因。

呃!