商洛公司网站设计:如何基于WordPress用户角色显示内容

发布时间2020-02-26    阅读:337    作者:商洛网站设计开发公司

在构建WordPress网站时,根据用户的角色或功能提供内容或功能通常是有用的。例如,您可能希望在站点上显示一些特殊内容--但只对管理员。这只是众多可能性中的一种。

WordPress有一个内置功能来提供帮助,这是非常方便的。这个current_user_can()函数允许您检查登录用户的权限。根据这些信息,你可以为他们提供你喜欢的任何特别的东西。相反,您也可以关闭某些项目以及。

按照前面提到的特殊内容示例,我们将讨论几个基本的片段让我们加入这个功能。

示例1:仅限管理员

在本例中,我们商洛公司网站设计将检查访问我们页面的登录用户是否是站点管理员。如果是的话,就会显示一个小小的欢迎信息。

在我们进入代码之前,值得注意的是,检查用户权限的方法不止一种。WordPress Codex声明,我们可以在current_user_can()函数,但是不建议使用它。可能会有不准确的地方导致错误的事情发生。

相反,我们可以使用特定用户角色的功能。有一个完整的列单每个用户角色在Codex中具有哪些功能。因此,与其检查用户是否是管理员,不如检查用户是否具有特定功能,例如激活。插件.

现在,让我们看看一些代码。以下内容将出现在您选择的主题模板中。

<?phpif ( current_user_can( 'activate_plugins' ) ): // check for a capability that only admins have ?>

          <p>Howdy, Administrator!</p><?php endif; // end of user capability check ?>

在这种情况下,我们正在检查用户是否能够激活插件--只有管理员(以及在多站点安装上,超级管理员)才有能力这样做。

 

示例2:让我们与成员私交

虽然第一个示例显示了一个通用消息,但我们也可以创建一个更个性化的体验。如果您运行的是会员网站。这有助于建立额外的社区意识。

在这里,我们将添加一个个人消息,包括用户的名字。我们可以通过get_current_user()功能。我们还将假设我们的成员被指定为WordPress中的订阅者。

<?php
$current_user = wp_get_current_user(); // grab user info  from the database if ( current_user_can( 'read' ) ): // 'read' is the lowest  level capability ?>

          <p>Howdy, <?php echo $current_user->user_firstname; ?>! Thanks for being a part of our community.</p><?php endif; // end of user capability check ?>

顺便说一句,阅读帖子的能力是WordPress中最底层的能力。因此,它适用于每个用户级别--不仅仅是订阅者。这只会确保我们没有遗漏任何人。

除了检查读取功能之外,我们还在消息中显示用户的名称。然而,更多可能性关于可以添加到混合中的用户数据。

示例3:基于用户功能的自定义头

最后一个例子,让我们做一些更戏剧化的事情。我们将根据用户的能力提供不同的主题标题。

穿过get_header()函数,WordPress允许使用多个头文件。并且根据用户条件来显示它们是非常有用的。例如,站点的成员可能从高度个性化的标题中受益。这样,非成员就可以看到更通用的东西。

在我们的代码中,我们将再次检查用户是否具有读取功能。我们还将添加一个额外的检查,以确保他们登录,通过is_user_logged_in()-只是为了好点.

如果在项目中使用此代码,它将替换<?php get_header(); ?>贯穿你的模板。

<?phpif ( current_user_can( 'read' ) && (is_user_logged_in)  ): // the user can both read posts and is logged in?>

          <?php get_header( 'members' ); // load header-members.php for site members ?><?php else: ?>

          <?php get_header(); // the default header.php, for non-members ?><?php endif; // end of custom header conditional ?>

上面,我们正在检查用户是否具有正确的功能,以及他们是否确实已登录。如果这两个项都返回为true,则将显示一个自定义头文件。否则,我们的主题的默认标题将被显示。

为用户做更多事情的机会

商洛公司网站设计上面的例子只是我们可以改善用户体验的一些小方法。但也有可能做更多的事情。真的,唯一的限制是你自己的想象力!

因此,下次您构建WordPress站点时,请根据用户的角色和功能寻找为他们提供功能的方法。他们会感谢你的努力,你会建立一个更完整的网站。


QQ客服
胡经理