如何为访客用户分配一个角色?

时间:2020-05-16 作者:N m

我试图给来宾用户一个“未登录”的角色。

我到处搜索,找不到一个解决方案可以实现这一点。我所发现的就是在functions.php 文件提供对某些内容的访问权限,例如,在不登录的情况下发布评论。

然而,当有很多角色时,很难做到这一点,而且开始变得复杂起来。

我有什么办法可以做到这一点吗?

我用过的东西

add_role( \'custom_role\', \'Custom Role\', array( \'read\' => true ) );
以及

 <?php
 global $user_login;
 if( $user_login ) {
    echo \'user logged in\';
 } else {
    echo \'user not logged in\';
 }
 ?>

2 个回复
最合适的回答,由SO网友:P.Sav 整理而成

您需要直接或通过PHP代码片段插件的短代码添加到模板中。

资料来源:https://developer.wordpress.org/reference/functions/is_user_logged_in/

   <?php
if ( is_user_logged_in() ) {
    echo \'Welcome, registered user!\';
} else {
    echo \'Welcome, visitor!\';
}
?>

SO网友:rank

如果只想向登录用户而不是登录用户显示内容,则无需为此创建新角色。如果您使用以下功能,Wordpress将注意到用户是否登录:

<?php
    if ( is_user_logged_in() ) {
        echo \'Welcome, registered user!\';
    } else {
        echo \'Welcome, visitor!\';
    }
?>

https://developer.wordpress.org/reference/functions/is_user_logged_in/

因此,正如您在评论中所写,如果用户未登录,您希望显示文本。您可以在主题的模板文件中写入(您希望消息显示的位置,请签出:https://developer.wordpress.org/themes/basics/template-hierarchy/) if语句。如果is\\u user\\u logged\\u未登录(使用!)true,显示消息:

<?php
    if ( !is_user_logged_in() ) {
        echo "You are not logged in.";
    }
?>