wordpress主题开发:引导用户去后台设置菜单的函数

我以前在写主题的时候曾经遇到过这样一个问题,其他作者朋友们应该也会遇到,就是wp_nav_menu默认的fallback是wp_page_menu,也就是在第一次安装主题时,如果用户没去设置菜单,会默认调用wordpress的页面列表作为菜单,这样会造成一个困扰,那就是一些用户页面太多,导致第一次使用主题时把导航界面撑的很难看,所以也看到有的作者会在主题里加上说明,希望用户启用主题后先去后台设置一个菜单,但如果遇到不认真看说明的用户怎么办呢?其实我们可以设置一个不一样的fallback,如果用户第一次启用主题并且没有设置菜单,会在导航上直接显示一个指向设置菜单页面的链接,这样既美观又实用,我曾经在mrmac主题中用到这段函数,(此丑陋的主题没有通过官方审核所以就不拿出来献丑了)把这段代码拿出来跟大家分享一下,
在模板函数中添加函数如下:

function link_to_menu_editor( $args )
{
    if ( ! current_user_can( 'manage_options' ) )
    {
        return;
    }

    extract( $args );

    $link = $link_before
        . '<a href="' .admin_url( 'nav-menus.php' ) . '">' . $before . 'Add a menu' . $after . '</a>'//此处可以改成你想要用户前往的页面地址,比如主题设置页面
        . $link_after;

    if ( FALSE !== stripos( $items_wrap, '<ul' )
        or FALSE !== stripos( $items_wrap, '<ol' )
    )
    {
        $link = "<li>$link</li>";
    }

    $output = sprintf( $items_wrap, $menu_id, $menu_class, $link );
    if ( ! empty ( $container ) )
    {
        $output  = "<$container class='$container_class' id='$container_id'>$output</$container>";
    }

    if ( $echo )
    {
        echo $output;
    }

    return $output;
}

然后在需要调用菜单的地方,将原本的<?php wp_nav_menu ; ?>改为如下函数:

<?php wp_nav_menu( array(
'theme_location' => 'primary',//调用的菜单,依据你的主题而定
'fallback_cb' => 'link_to_menu_editor' //调用link_to_menu_editor的fallback
) ); ?>

效果如下:

引导用户去后台设置菜单

LIKE OR SHARE IT:

admin发表于Code目录下,标签为,转载请保留链接

TOP DOWN
发表评论

您必须 [ 登录 ] 才能发表留言!

  1. 沙 发 郑永

    沙发!!!

    二月 26, 2013 02:16:25
  2. 板 凳 郑永

    继续板凳吧,哈哈。。

    二月 26, 2013 02:17:26
  3. 地 板 郑永

    再来个地板,全占位。

    二月 26, 2013 02:17:47
  4. 地 毯 郑永

    意思是?主题启用,上面会出现提示?引导到设置那里去设置?

    二月 26, 2013 02:22:05
  5. 地 面 公子

    好法子。。。 :evil: mark!

    二月 26, 2013 09:41:19
  6. 地 下 所谓刚子

    特意过来学习的。。。

    二月 27, 2013 21:06:51
  7. 7 楼 我的名字叫麒

    看不懂,友情顶帖!

    二月 28, 2013 10:47:12
  8. 8 楼 胡倡萌

    那天你和我说了这个函数,我还以为是WP自带的,没想到是自定义的,难怪我搜不到 :han: 好了,最近打算要折腾新主题,到时候用用

    三月 2, 2013 08:20:16
  9. 9 楼 小教大专论坛

    没有捣鼓过wp的源码

    三月 3, 2013 08:32:16
  10. 10 楼 qq小清新头像

    这个好像还是听需要的哦。。

    九月 27, 2013 13:27:16