我希望在用户注销时能够隐藏甚至替换“我的帐户”按钮,而在用户登录时我希望能够隐藏或替换“注册”按钮。
我将如何去做?我仍然是WordPress的业余爱好者,并且仍在学习,这是我到目前为止在nav-menus.php文件中拥有的内容。
if( is_user_logged_in() ) {
wp_nav_menu( array( 'My Account' => 'logged-users' ) );
} else {
wp_nav_menu( array( 'Registration' => 'not-logged-users' ) );
}
我知道这是不正确的。
答案 0 :(得分:1)
首先,您需要创建两个菜单,转到外观»菜单,创建已登录和已退出的两个菜单。
创建菜单后,将此代码添加到主题的functions.php文件或特定于站点的插件中:
function my_wp_nav_menu_args( $args = '' ) {
if( is_user_logged_in() ) {
$args['menu'] = 'logged-in'; //This value stands for the actual name you give to the menu when you create it.
} else {
$args['menu'] = 'logged-out';
}
return $args;
}
add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );
}
仅此而已。
答案 1 :(得分:1)
如果您只需要隐藏,那么我主要通过CSS来实现。当有登录用户时,WP将logged-in
类添加到body元素中,因此您可以使用它来不同地设置body内的元素格式。
通过管理员后端将类添加到菜单项,例如hide-when-logged-in
和hide-when-not-logged-in
。
然后您就可以使用
body.logged-in .hide-when-logged-in,
body:not(logged-in) .hide-when-not-logged-in {
display: none;
}
在样式表中隐藏相应条件下的那些元素。