0

ログイン状態に基づいてトップ メニュー項目のリンクを変更する方法を教えてください。たとえば、ログインしていない場合は /register リンクが表示され、ログインしている場合は # リンクが表示されます (このアイテムがルートの場合) そのメニューのサブページのリストが表示されますか?

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

私はこのように自分のサイトで同じことをしました。

ステップ 1: 2 つのメニューの位置を作成する

このように2つのメニュー位置を作成する必要があります

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 ファイルに配置します。これで、管理パネルのメニュー セクションに 2 つのナビゲーション エリアが作成されます。ウェアから、フロント パネルのこれらのナビゲーション エリアの下に表示されるメニューを選択できます。

ここに画像の説明を入力

ステップ 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 に答える