是否可以仅在用户登录时显示按钮?

时间:2018-12-04 作者:user102195

我有一个类“rty downloads”,我想这个类只显示给WordPress登录用户,这可能吗?

提前感谢

5 个回复
SO网友:Liam Stewart

您可以在任何WordPress页面/模板上使用此选项。

<?php if ( is_user_logged_in() ) : ?>
    //Code for only logged in users
<?php endif; ?>
签出文档以获取更多信息:https://developer.wordpress.org/reference/functions/is_user_logged_in/

SO网友:Sony ThePony

最简单的解决方案:您可以使用纯css,如下所示:

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

SO网友:Johnymas

For me only works

/* show blog button only if logged in */
li.button-class {
    visibility: hidden !important;
    display: none !important;
}
.logged-in li.button-class { 
    visibility: visible !important;
    display: inline-block !important;
}
SO网友:dado

Try this

 add_action( \'loop_start\',      \'your_function\' );
 function your_function() {

 if ( is_user_logged_in() ) {
echo \'<li id="text-2" class="hide">\';
} else {
echo \'<li id="text-2">\'; 
}}
SO网友:Bandi

这是我使用的:

functions.php (儿童主题):

add_action(\'shutdown\', function() {
    $final = \'\';
    $levels = ob_get_level();
    for ($i = 0; $i < $levels; $i++)
    {
        $final .= ob_get_clean();
    }
    echo apply_filters(\'final_output\', $final);
}, 0);

add_filter(\'final_output\', function($output) {
  $display1 = \'none\';
  $display2 = \'block\';

  if(is_user_logged_in()) {
    $display1 = \'block\';
    $display2 = \'none\';
  }

  $from = array(\'%display1%\', \'%display2%\');
  $to = array($display1, $display2);
  $output = str_replace($from,$to,$output);

  return $output;
});

CSS:

.for-logged-in-users {
display: %display1%;
}
.for-logged-out-users {
display: %display2%;
}
然后,您可以为要显示/隐藏的元素添加这两个类名。这样,您可以基于任何逻辑显示/隐藏任何元素。

相关推荐

如何筛选/钩入检索密码()以筛选$_POST[‘USER_LOGIN’]?

我正在开发一个网站,其中用户名是一个文件编号,称为CPF(将其视为国家ID),该网站具有以下掩码:000.000.000-00 我将用户名存储为普通数字,但我们所有的表单都必须有上面的掩码,这反过来使其_POST[\'user_login\'] 总是带着破折号和圆点。这是用户登录/用户名的示例:$_POST[\'user_login\'] = \'123.456.789-00\' $actual_username_ondb = \'12345678900\' 这对于登录来说不