如果用户在 WordPress 上登录,则删除按钮

Remove buttons if a user is logged in on WordPress

我在 header 中有这两个按钮:

<a href="/" class="button primary-button">Members</a>
<a href="#/register/" class="button secondary-button">Register Now!</a>

如果用户未登录或注册,则应显示这两个按钮。如果登录,这两个应该 而不是 显示。我该怎么做?

您可以使用 is_user_logged_in() 检查用户是否登录 wp

if ( is_user_logged_in() ) {
// your code for logged in user 
} else {
// your code for logged out user 
}

注销用户的添加成员和注册按钮需要使用下面的代码

if ( !is_user_logged_in() ) {
  <a href="/" class="button primary-button">Members</a>
  <a href="#/register/" class="button secondary-button">Register Now!</a>
} 

有多种方法可以做到这一点。我要提到的第一个将利用 WP 函数,第二个仅使用 CSS.

最后,我将以一种仅向登录用户显示按钮的方式结束回答。


选项 1

WordPress 有一个函数来确定当前访问者是否是登录用户:is_user_logged_in() 类似于以下内容

function is_user_logged_in() {
    $user = wp_get_current_user();
 
    return $user->exists();
}

可以找到wp-includes/pluggable.php中的函数。

对于您的具体情况,以下可能会起作用

<?php if ( !is_user_logged_in() ) : ?>
      <a href="/" class="button primary-button">Members</a>
      <a href="#/register/" class="button secondary-button">Register Now!</a>
<?php endif; ?>

选项 2

Customize>Additional CSS 中添加类似下面的内容也可能会起作用(对我有用)

.logged-in .button-class { 
    visibility: hidden !important;
    display: none !important;
}

.button-class {display: block;}
.logged-in .button-class {display: none;}

额外

或者,如果只想在用户登录时显示按钮,使用 CSS,请执行以下操作

.button-class {
    visibility: hidden !important;
    display: none !important;
}
.logged-in .button-class { 
    visibility: visible !important;
    display: inline-block !important;
}