通过函数更改基于页面模板的菜单。php

时间:2020-03-13 作者:Chumtarou

如果某个页面使用特定的页面模板,我会尝试调出该页面的主菜单。

直到我在页面上添加了第二个菜单,这一切都很顺利。

如果您能给我一些指导,告诉我如何只针对主菜单,而不是页面上的所有菜单,我将不胜感激。我尝试了“主菜单”,但没有成功。

在函数中。php:

add_filter(\'wp_nav_menu_args\', function ($args) {
  if (is_page_template(\'page-template-custom.php\')) {
    $args[\'menu\'] = \'custom-menu\';
  }
  return $args;
});
非常感谢!

1 个回复
最合适的回答,由SO网友:Pabamato 整理而成

这个$args 过滤器正在接收包括theme_location 注册菜单时使用,因此假设您的主要位置是primary, 您可以将以下内容添加到if语句中,以仅针对该菜单:

    if ( 
      is_page_template( \'page-template-custom.php\' ) && 
      isset( $args[\'theme_location\'] ) &&
      \'primary\' === $args[\'theme_location\'] )
    ) { ...

请参见:https://developer.wordpress.org/reference/hooks/wp_nav_menu_args/

https://developer.wordpress.org/reference/functions/register_nav_menu/
供参考

相关推荐

Missing Menus Structure

当我通过Appearance → Menus, 右侧的“菜单结构”完全缺失。所以我无法更新我的菜单。这个Pages 节,但没有“菜单结构”。有没有人看到这个或知道在这里该怎么做?