Wordpress 4.0破碎的菜单

时间:2014-09-16 17:44:55

标签: php wordpress menu

前几天我更新到WP 4.0,发现我的菜单正在使用第一个字母菜单。我做了一些搜索,发现很多其他人都有同样的问题。到目前为止,我在这个问题上看到的唯一答案是:

http://wordpress.org/support/topic/wp-40-broke-main-menu?replies=25

用户“lblechl”写道“验证您发送给wp_nav_menu的参数数组不包含任何尾随字符,额外的逗号,不正确的参数等。”

我查看了我的主题,并将其与Bones Development Theme的原始版本进行了比较,但我似乎无法看到问题所在。还有其他人经历过这个吗?

这是我正在使用的代码:

// REGISTERING THE MENU
function bones_theme_support() {
register_nav_menus(
    array(
        'mobile-nav' => __( 'The Mobile Menu', 'bonestheme' )   // main nav in header
    )
);
}
// END REGISTERING THE MENU

// THE MENU
function bones_mobile_nav() {
wp_nav_menu(array(
    'container' => false, // remove nav container
    'container_class' => '', // class of container (should you choose to use it)
    'menu' => __( 'The Mobile Menu', 'bonestheme' ), // nav name
    'menu_class' => '', // adding custom nav class
    'theme_location' => '', // where it's located in the theme
    'before' => '', // before the menu
    'after' => '', // after the menu
    'link_before' => '', // before each link
    'link_after' => '', // after each link
    'depth' => 0, // limit the depth of the nav
    'fallback_cb' => 'bones_mobile_nav_fallback' // fallback function
));
}
/* END THE MENU */

// THE FALLBACK
function bones_mobile_nav_fallback() {
    wp_page_menu( array(
    'show_home' => true,
    'menu_class' => '', // adding custom nav class
    'include'     => '',
    'exclude'     => '',
    'echo'        => true,
    'link_before' => '', // before each link
    'link_after' => '' // after each link
) );
}
/* END THE FALLBACK */

2 个答案:

答案 0 :(得分:0)

首先,我尝试将wp_nav_menu()中的'menu'键设置为$ location和$ description,如下所示:

// Registering the menu:
register_nav_menu( 'my_menu', 'My Menu');

// Inside the view I tried with the $location:
wp_nav_menu(array('menu' => 'my_menu'))

// and with the $description:
wp_nav_menu(array('menu' => 'My Menu'))

在我尝试使用您设置的菜单名称之前,两者都没有工作:

yoursite.com/wp-admin/nav-menus.php

假设我将菜单名称设置为“示例菜单”

然后,在视图中将菜单值替换为您之前设置的菜单名称(yoursite.com/wp-admin/nav-menus.php):

wp_nav_menu(array('menu' => 'Example Menu'))

这让我思考,我可能没有正确理解文档,因为我认为你可以在wp_nav_menu()中使用revister_nav_menu()中的$ location和$ description。

希望这有帮助。

编辑:在你的情况下,我看到你在菜单键中使用本地化助手“__()”,我不知道WP内部是否有特殊用途,但我的猜测是你不应该使用它:

function bones_mobile_nav() {
  wp_nav_menu(array(
   //...
   // This is how you are doing it:
   'menu' => __( 'The Mobile Menu', 'bonestheme' ),
   //The value should be the string set in yoursite.com/wp-admin/nav-menus.php:
   'menu' => 'Example Menu',
   //...
  ));
}

答案 1 :(得分:0)

这是' lblechl'来自您提到的WP论坛。

使用提供的代码,我注意到register_nav_menus调用包含在一个函数中。代码中的任何内容都调用了bones_theme_support函数吗?如果没有,你将不得不在加载主题时将该函数挂钩。

另外,请验证“移动设置”菜单'是创建的菜单的确切名称。

如果这些内容似乎都符合规定并且您仍然遇到问题,请随时向我发布更多详细信息。