我正试图找出polylang过滤器中按语言切换菜单的错误原因。
我正在查看nav\\u menu\\u locations功能,该功能作为过滤器添加如下:
add_filter(\'theme_mod_nav_menu_locations\', array($this, \'nav_menu_locations\'), 20);
随后定义为:
public function nav_menu_locations($menus) {
...
return $menus;
}
我在开始时和返回更改后的值之前插入了echo$菜单的语句,并可以确认函数正在被调用。
但奇怪的是,搜索整个插件代码,然后搜索整个WordPress核心,我找不到匹配的apply\\u过滤器用于theme\\u mod\\u nav\\u menu\\u位置,而且据我所知,也没有直接调用该函数。所以我看不到$menus参数是在哪里生成的。
我想我了解了过滤器挂钩的工作原理,但看不到nav\\u menu\\u locations函数是如何运行的,尽管它很清楚。
这可能无法帮助我解决菜单切换问题,但我至少想澄清一下过滤器是如何触发的。