1

我正在 Wordpress 上建立会员网站,并希望向登录用户显示不同的导航菜单。

这是显示菜单的当前 PHP 代码:

                <?php /* Our navigation menu. */ ?>
<?php if ( isset ($options['admired_remove_superfish']) &&  ($options['admired_remove_superfish']!="") )
                    wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) );
                else
                    wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary', 'menu_class' => 'sf-menu','fallback_cb' => 'admired_page_menu'  ) );?>

这是需要替换该代码的 PHP 代码:

<?php
    if ( wp_emember_is_member_logged_in() ) {
    wp_nav_menu( array( 'menu' => 'logged-in-members' ) );
  } else {
    wp_nav_menu( array( 'menu' => 'normal-visitor-menu' ) );
  }
?>

如果我只是用新代码替换旧代码,它将起作用,但格式已关闭。我需要当前代码中的 Superfish 部分,但我不确定如何使其在 PHP 中工作。

我知道这可能有点令人困惑,但我会很感激任何帮助。谢谢!

PS 这是来自插件网站的教程。我一直在关注它,但不知何故我需要把超级鱼留在里面。我确定不知道该怎么做。

http://www.tipsandtricks-hq.com/wordpress-membership/show-different-navigation-menu-to-your-members-and-non-members-551

4

2 回答 2

3

'menu_class' => 'sf-menu'将为 sf-menu class菜单添加,插件将使用它来识别菜单,(<ul class="sf-menu">)并且将应用插件中已声明的样式super fishclasssuper fishcss

<?php
    if ( wp_emember_is_member_logged_in() ) {
        wp_nav_menu( array( 'menu' => 'logged-in-members', 'menu_class' => 'sf-menu' ) );
    } else {
        wp_nav_menu( array( 'menu' => 'normal-visitor-menu', 'menu_class' => 'sf-menu' ) );
    }
?>

有关更多信息,请参阅此

于 2012-08-06T23:43:13.547 回答
0

考虑到上面的代码,唯一改变的是菜单的实际位置。(现有)代码显示您想要菜单'theme_location' => 'primary',因为您有一个要使用的硬编码菜单,并且您正在选择它'menu' => 'loggged-in-members'完成的结果将是......

<?php
    if ( wp_emember_is_member_logged_in() ) {
       wp_nav_menu( 
           array( 
               'container_class' => 'menu-header', 
               'menu' => 'logged-in-members', 
               'menu_class' => 'sf-menu',
               'fallback_cb' => 'admired_page_menu' 
           ) 
       );
    } else {
        wp_nav_menu( array( 'menu' => 'normal-visitor-menu' ) );
    }

?>

于 2012-08-06T23:42:37.977 回答