如何让 Wordpress 主题支持自定义导航,并符合主题样式

自定义导航乃 Wordpress 3.0 之新功能也。主题支持后,可直接在 Wordpress 后台设置导航项目。可有些主题并不支持这个功能,如何使得它支持呢?

1.修改主题的 functions.php 文件,加上以下代码:

<?php
    register_nav_menus(
        array(
            'mymenu' => __( 'mymenu' )
        )
    );
?>

2.在主题的适当位置(导航需要放置的位置,或许是在 header.php),将原来的导航代码(或许使用 wp_list_pages() 函数)替换为以下代码:

<?php
    $mymenu_args = array(
    //最外层容器的标签名,默认div
    'container' => '',
    //最外层容器的class名
    'container_class' => '',
    //最外层容器的id名
    'container_id' => '',
    //导航菜单ul标签的class名
    'menu_class' => '',
    //导航菜单ul标签的id名
    'menu_id' => "",
    //是否打印,默认是true,如果想将导航的代码作为赋值使用,可设置为false
    'echo' => true,
    //备用的导航菜单函数,用于没有在后台设置导航时调用
    'fallback_cb' => 'mymenu',
    //显示在导航a标签之前
    'before' => '',
    //显示在导航a标签之后
    'after' => '',
    //显示在导航链接名之前
    'link_before' => '',
    //显示在导航链接名之后
    'link_after' => '',
    //输出样式,备用:'<ul id=\”%1$s\” class=\”%2$s\”>%3$s</ul>'
    'items_wrap' => '%3$s',
    //显示的菜单层数,默认0,0是显示所有层
    'depth' => 0,
    //调用一个对象定义显示导航菜单
    'walker' => new Walker_Nav_Menu(),
    //指定显示的导航名,如果没有设置,则显示第一个
    'theme_location' => 'mymenu',
    );
    wp_nav_menu( $mymenu_args );
?>

好!这样就接近完美了!接下来我们只需要修改下 CSS 所指定的元素了,例如把 .page_item 替换为 menu-item

你不要问我自定义菜单肿么使用,它其实就在 Wordpress 后台的“外观—菜单”。按照本文的方法去做,不要忘记菜单名神马的要写“mymenu”哦!

插话一句:这是我昨天帮一个人修改主题时,查找资料研究出来的。赚了点小费,还清了5元钱,还买了一个域名,嗯哼。

2012-4-28 P.S.更新代码!

若无特别说明,本文系原创,遵循 署名-非商业性使用 3.0 (CC BY-NC 3.0) 协议,转载文章请注明来自【闪星空间】,或链接上原文地址:http://shansing.com/read/167/

17 条评论

  1. 这个,貌似很多主题都可以自定义导航了

    1. 这个也不能说得很肯定,是吧?

  2. Ben Ben

    这样就能赚到钱了....

    1. 还包括运气。。

    2. 刚刚发现 SMTP 不能发信是因为密码错误……

  3. 不觉得用处很大诶。。现在的主题一般都有集成

    1. 这篇文章是给木有集成的主题用的。。

  4. 不错的技术文章哈、 不过自己对导航已经无感觉了。。。

  5. 标题是WP。用的是Typecho。突然想,噗哧……

    1. 我还关注 Wordpress。

  6. 还在研究WP啊...

  7. 这就能赚到钱了啊~~我也去~~

发表评论»

NO SPAMS! 不要发垃圾评论哦!

表情