0

有人可以回答我如何根据登录状态更改顶部菜单项的链接的问题吗?例如,如果你没有登录,你会看到/register 链接,如果你登录了,你会得到#link of even(如果这个项目是root)你会看到那个菜单的子页面列表?

4

2 回答 2

1

如果您自己对链接进行硬编码,请执行以下操作。

if(is_user_logged_in() ){
    echo '<a href="/">home</a>';
}else{
     echo '<a href="/register">register</a>';
}
于 2013-07-08T10:19:12.070 回答
0

我在我的网站上做了同样的事情。

第一步:创建两个菜单的位置

你必须像这样创建两个菜单位置

function register_my_menus(){
    register_nav_menus(
        array(
            'new_user_navigation'=>__('New User Navigation'),
            'registered_user_navigation'=>__('Registered Navigation'),
        )
    );
}
add_action( 'init','register_my_menus' );

将上面的代码放在function.php 文件中。现在这将在您的管理面板菜单部分创建两个导航区域。您可以从 ware 中选择要在前面板的这些导航区域下显示的菜单。

在此处输入图像描述

第 2 步:从管理面板中选择菜单。

现在选择要在特定菜单位置显示的菜单。

第 3 步:编辑 header.php 文件中的代码。

现在通过使用 @In God I Trust 代码,您可以让 WordPress 决定当用户像这样登录时要显示哪个菜单。

if(is_user_logged_in() ){
    if ( has_nav_menu( 'registered_user_navigation' ) ){
        wp_nav_menu( array('theme_location' => 'registered_user_navigation',
            'menu_item' => 'object_id'
        ) );
    } 
}else{
    if ( has_nav_menu( 'new_user_navigation' ) ){
        wp_nav_menu( array('theme_location' => 'new_user_navigation',
            'menu_item' => 'object_id'
        ) );
    } 
}
于 2013-07-08T11:47:05.583 回答