【问题标题】:WordPress, how translate two different menus correctly with Polylang?WordPress,如何使用 Polylang 正确翻译两个不同的菜单?
【发布时间】:2019-02-01 00:25:33
【问题描述】:

我需要菜单翻译方面的帮助。我为“登陆”和“博客”两个页面创建了两个不同的菜单。在我开始使用 Polylang 进行翻译之前,我的代码运行良好。

Look for images

这里是菜单代码:

<?php
    if ( is_page( 'landing' ) ) {
        wp_nav_menu( array(
          'menu'        => 'landing',
          'menu_class'  => 'nav navbar-nav darka',
          'container'   => 'false',
        ) );
    } else {
        wp_nav_menu( array(
          'menu'        => 'blog',
          'menu_class'  => 'nav navbar-nav darka',
          'container'   => 'false',
        ) );
    }
  ?>

此代码创建菜单,如果有帮助:

add_theme_support( 'menus' );

function register_theme_menus() {
  register_nav_menus(
    array(
      'landing-menu'    => __('Landing Menu'),
      'blog-menu'       => __('Blog Menu')
    )
  );
}
add_action('init', 'register_theme_menus');

UPD

我解决了这个问题!

functions.php

    <?php
add_theme_support( 'menus' );
// create menu
function register_theme_menus() {
  register_nav_menus(
    array(
      'primary' => __('Primary Menu', 'nameyourtheme'),
      'second' => __('Second Menu', 'nameyourtheme')
    )
  );
}
add_action('init', 'register_theme_menus');
?>

header.php

    <?php
if (is_front_page()) {
  wp_nav_menu( array(
      'theme_location'        => 'primary',
      'menu_class'  => 'nav navbar-nav darka',
      'container'   => 'false',
    ) );
}  
else {
  wp_nav_menu( array(
    'theme_location'        => 'second',
    'menu_class'  => 'nav navbar-nav darka',
    'container'   => 'false',
  ) );   
}
?>

【问题讨论】:

  • 我解决了这个问题!

标签: php wordpress menu


【解决方案1】:

我在翻译多个菜单时遇到了同样的问题,但我的情况有点不同。在我的情况下,这两个菜单位于标题中的主页上。

functions.php

'top_menu' => __('Top Menu', 'nameyourtheme')

这是我最初的主题菜单。然后我像这样删除了下划线:

'topmenu' => __('Top Menu', 'nameyourtheme')

它奏效了。当然,菜单名称的更改应该应用在

header.php

'theme_location' => 'topmenu',

我的结论是 Polylang 只能识别一个单词菜单名称。

【讨论】:

    【解决方案2】:

    不确定这是否有帮助,但不是注册菜单,我通常这样命名我的菜单:

    Menu fr_CA
    Menu en_US
    

    然后网站可以简单地使用 wordpress get_locale() 加载正确的一个衬里。

    <? wp_nav_menu(array('menu' => 'Menu '.get_locale())); ?>
    

    我发现这比注册菜单更容易。

    【讨论】:

      猜你喜欢
      • 2019-04-18
      • 1970-01-01
      • 2019-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多