WordPress 3.0来了,你的主题准备好了吗?

目前WordPress 3.0 RC已发布,新版增加了许多功能,可能喜欢尝鲜的朋友已迫不及待地升级了自己博客,利用原来2.9.2版的中文语言文件基本汉化了大部分菜单,只有少部分还是英文的,其中在主题选项中多出一个Menus功能,一个可以方便灵活地向导航菜单添加自定义内容的新功能。但当你打开这个选项时会提示“The current theme does not natively support menus, but you can use the “Custom Menu” widget to add any menus you create here to the theme’s sidebar.”大概的意思是:当前的主题不支持菜单功能,但你可以把利用这一“菜单”功能,添加的自定义菜单应用到主题侧边栏中,也就是小工具(E文盲,翻译的不好别见笑)。然而当你启用3.0版默认主题Twenty Ten后,这个提示就消失了,看来是新的默认主题针对3.0功能进行了优化。

原来在默认主题functions.php中有一句:
// This theme uses wp_nav_menu() in one location.
register_nav_menus( array(
'primary' => __( 'Primary Navigation', 'twentyten' ),
) );

把这句代码添加到当前主题functions.php模板文件中,提示也消失了,关键就是这句了。

但只修改这里,并不会真正在主题导航菜单上启用这个功能,只会在侧边小工具中多出custom menu小工具一项,还需修改导航部分代码,才会体验到新的功能。
一般主题导航部分代码为:
<?php wp_list_pages('title_li='); ?>

或:

<?php wp_list_categories('sorderby=name&depth=4&title_li='); ?>
改为
<?php wp_nav_menu( 'id=navbar' ); ?>
也可以根据自己使用的主题功能修改为类似:
<?php wp_nav_menu( 'id=navbar&menu_class=headermenu' ); ?>
主题改造完成,下面简单介绍一下这个Menus功能的使用方法:
打开Menus设置页面,在此添加一个新的自定义菜单:

menus1-1

在左侧选择准备显示在导航菜单的分类标题或页面,也可以添加一个链接,然后点击“add to menu”添加到新的自定义菜单中,保存菜单。

menus2-1

刷新博客页面,看看新的导航菜单是不是出来了。如果想实现二级下拉菜单,只需把准备显示在二级菜单的内容向右拖一下就可以了,当然二级菜单需要主题的功能支持.

总结:个人感觉这是3.0版一个非常不错的新功能,可以灵活方便地变更主题导航菜单内容,不受主题本身限制,但之前所有主题都不支持这个功能,需手动修改模板文件,对新手而言,有一定难度。

类似文章

43条评论

  1. 紧急求救:
    把代码加入 functions.php后 还是不能使用 The current theme does not natively support menus, but you can use the “Custom Menu” widget to add any menus you create here to the theme’s sidebar.”还存在!!!!!试了很多位置!!!

    代码加入什么位置?

  2. functions.php 代码插入问题搞定了!
    第二步出现了问题!!!

    我的导航栏代码是

    该如何修改啊?

    修改了很多遍,不行啊

  3. functions.php 代码插入问题搞定了!
    第二步出现了问题!!!

    我的导航栏代码是

    修改了很多遍,不行啊

  4. 代码添加到functions.php中,要使用如下行:
    // This theme uses wp_nav_menu() in one location.
    register_nav_menus( array(‘primary’ => __( ‘Primary Navigation’, ‘twentyten’ ),) );
    通常使用add_theme_support( ‘nav-menus’ );会不正常。

    另外还要在header.php中查找
    wp_list_pages(‘sort_column=menu_order&depth=3&title_li=&exclude=’);行,替换为
    wp_nav_menu( ‘id=navbar’ );
    然后就会生效了!

    1. 还是不行啊!
      第一个已经加上,第二步找不到 不知道怎么替换啊!

      代码在下面 帮我看下 谢谢!

      
      <html xmlns=”http://www.w3.org/1999/xhtml” >

      <meta http-equiv=”Content-Type” content=”; charset=” />

      post_title;
      $keywords = “”;
      $tags = wp_get_post_tags($post->ID);
      foreach ($tags as $tag ) {
      $keywords = $keywords . $tag->name . “, “;
      }
      } else {
      $description = $options[‘description’];
      $keywords = $options[‘keywords’];
      } ?>

      <meta name=”keywords” content=”” />
      <meta name=”description” content=”” />

      <link rel=”shortcut icon” type=”image/ico” href=”/images/favicon.ico” />
      <link rel=”stylesheet” href=”” type=”text/css” media=”screen” />
      <link rel=”alternate” type=”application/rss+xml” title=”” href=”” />
      <link rel=”alternate” type=”application/atom+xml” title=”” href=”” />
      <link rel=”pingback” href=”” />

      <a href=”/” title=””>

      <li class=”current-cat”><a href=”/”>

      <a target=”_blank” title=”” href=””>

      ”,
      ‘echo’ => 1,
      ‘child_of’ => $cat
      );
      echo ”;
      wp_list_categories($args);
      echo ”;
      }
      } ?>

  5. 现在菜单导航栏显示的是 类别的导航 我想自定义页面导航 怎么实现啊!

    代码是 ?php wp_list_categories(‘title_li=&depth=1&orderby=id’); ?

    更换后 好像不可以啊!
    哪位大侠帮忙解决下!

已关闭评论。