博客 / WordPress/ WordPress不同用户等级显示不同文章內容的方法

WordPress不同用户等级显示不同文章內容的方法

WordPress不同用户等级显示不同文章內容的方法

用户等级对于一般个人 WordPress 博客来说作用有限,但对于 WordPress 多用户站点而言,则可以在许多场景下发挥作用。

本文将介绍如何在 WordPress 中实现根据不同用户等级显示不同内容的方法。

WordPress 默认用户等级

WordPress 默认包含以下几种用户等级(基于用户能力级别):

管理员:Administrator: level 10
编辑:Editor: Level 7
作者:Author: Level 4
投稿者:Contributor: Level 2
订阅者:Subscriber: Level 0
访客:Level 在 0 以下(未登录)

您也可以根据需要添加自定义的用户角色或用户组。具体方法可参考相关扩展教程。

实现方法

以下通过代码示例展示如何根据用户等级控制内容的显示。

示例一:仅管理员可见

此代码片段会检查当前用户是否已登录且具有管理员权限(level_10)。

<?php
global $user_ID;
if( $user_ID ) :
    if( current_user_can('level_10') ) :
?>
        <p>这里是仅管理员可见的内容。</p>
<?php
    endif;
endif;
?>

示例二:按用户等级显示不同内容

此代码片段使用条件判断,为不同等级的用户显示不同的内容块。

<?php
if (current_user_can('level_10')) :
    // 仅管理员可见
    echo '<p>仅管理员可见的内容。</p>';
elseif (current_user_can('level_7')) :
    // 仅编辑可见
    echo '<p>仅编辑可见的内容。</p>';
elseif (current_user_can('level_4')) :
    // 仅作者可见
    echo '<p>仅作者可见的内容。</p>';
elseif (current_user_can('level_2')) :
    // 仅投稿者可见
    echo '<p>仅投稿者可见的内容。</p>';
elseif (current_user_can('level_0')) :
    // 仅订阅者可见
    echo '<p>仅订阅者可见的内容。</p>';
else :
    // 未登录的访客可见
    echo '<p>一般访客可见的内容。</p>';
endif;
?>

重要说明:

  • current_user_can() 函数是 WordPress 中检查用户权限的标准方法。参数可以是能力级别(如 'level_10')或具体的权限名称(如 'manage_options')。
  • 在实际开发中,更推荐使用具体的权限(Capabilities)而非数字等级进行判断,例如使用 current_user_can('manage_options') 来检查管理员权限,这样代码更健壮且符合 WordPress 最佳实践。
  • 上述代码需要添加到主题模板文件(如 single.php、page.php)或通过短码、小工具等方式嵌入。
  • 请确保在修改主题文件前做好备份,或使用子主题进行操作。

发表评论

您的邮箱不会公开。必填项已用 * 标注。