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