我正在将OceanWP主题与wordpress一起使用来创建我的网站。
我使用的模板有两个主页菜单栏, 即主菜单栏和顶部菜单栏, 如下所示:http://prntscr.com/po0bi2
我只想在顶部菜单栏上显示”我的帐户”和”供应商仪表板”选项以登录用户, 以及”注销”按钮。当前, 它们向已登录或已注销的用户显示。
我在网上找到了一些代码, 我对其进行了一些微调, 然后将其添加到functions.php文件中, 该文件应该提供创建两个菜单的选项, 一个用于登录用户, 一个用于注销用户。这是代码:
/* Menu location */
function prefix_menu_location() {
// Register navigation menus
register_nav_menus( array(
'logged_in' => 'Logged In', 'logged_out' => 'Logged Out', ) );
}
add_action( 'after_setup_theme', 'prefix_menu_location', 10 );
/* Menu for logged in and out users */
function prefix_top_menu_location() {
$return = 'top_menu';
if( is_user_logged_in() ) {
$return = 'logged_in';
} else {
$return = 'logged_out';
}
return $return;
}
add_filter( 'ocean_top_menu_location', 'prefix_top_menu_location' );
添加后, 它在我的菜单页面中创建了”已登录”和”已注销”位置。请参阅:http://prntscr.com/po0fok
另外, 它还为我提供了在编辑菜单页面上选择选项的选项:http://prntscr.com/po0geh
我创建了两个菜单, 分别命名为”顶部栏菜单1″和”顶部栏菜单2″, 第二个菜单是我想用于注销用户的菜单。问题是它只会让我将一个菜单分配给顶部栏。请在这里查看:http://prntscr.com/po0j5t
当我为登录的用户将”顶部栏菜单1″设置为”顶部栏”时, 然后尝试为注销的用户编辑”顶部栏2菜单”, 这将不允许我也选择顶部栏正如上面说的那样, 当前顶部栏设置为”顶部栏菜单1″, 因此当用户登录时, 他们将看到”顶部栏菜单1″, 但是当他们注销时, 顶部栏将为空白, 因为它不会让我将”顶部栏菜单2″分配给顶部栏。 http://prntscr.com/po0ll2
有谁知道如何将注销用户的第二个菜单分配给顶部栏, 或者是否需要更改添加到functions.php文件中的代码?
非常感谢,
#1
你可以在header.php文件中执行此操作(或在导航菜单显示的位置)
<?php if ( is_user_logged_in() ) : ?>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu' => 'logged_in', 'menu_class' => 'nav-menu' ) ); ?>
<?php else : ?>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu' => 'logged_out', 'menu_class' => 'nav-menu' ) ); ?>
<?php endif; ?>
或者, 如果你仍要在功能文件中执行此操作, 则可以使用它。
function my_wp_nav_menu_args( $args = '' ) {
if( is_user_logged_in() ) {
$args['menu'] = 'logged_in';
} else {
$args['menu'] = 'logged_out';
}
return $args;
}
add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );
评论前必须登录!
注册