定西做网站:改进WordPress用户系统(只需3步)

可以说,WordPress最好的地方之一就是它的各种潜在用途。对于许多博客来说,这可能意味着很少有来自WordPress用户系统的内容-只有一个帐户可以执行所有的管理和内容创建。但是,对于其他用户(特别是较大的站点),可能需要拥有和管理许多用户帐户。

定西做网站由于WordPress中只有五个用户角色,大型站点的管理员有时可能会发现默认选项有点限制。给一个用户什么样的权限,比如说,谁应该能够上传文件,但你更愿意批准谁的帖子才能上线?在核心WordPress中没有这样的选择。

然而,WordPress用户系统在改进和扩展方面有很大的潜力。本文将介绍三个不同的步骤,您可以作为管理员来改进WordPress用户系统。

规划的重要性(尤其是在这里!)

在我们定西做网站开始之前,一个简短的词,我认为会变得越来越清楚,在整个帖子:需要仔细规划,然后实施这些步骤在您的网站。当您可以使用经过改进的用户系统的功能时,原因将变得更加明显。然而,从本质上说,计划将防止您在开始使用系统之后进行进一步的更改。

我是一个坚定的拥护者,要确保你知道你想要做什么以及为什么以前让它发生。根据我的经验,第一次这样做大大减少了将来将数据迁移到新系统所花费的时间。一开始就能做你想做的事将要节省你的时间和精力。

因此,一旦您阅读了这些想法,我就不会建议直接去实现它们;我甚至不会建议将它们直接应用到客户端站点中,当它们的功能达到他们想要的程度时,我甚至不会建议直接将它们应用到客户机站点上。确保您正在做他们需要的事情,然后实现它:就像我说的,从长远来看,它将节省您的时间。

别挡道,带着向导。

步骤1:安装用户角色插件

正如任何WordPress管理员应该知道的那样,当希望向安装添加功能时,首先要查看的是广泛的WordPress插件目录。

当涉及到根据安装的具体需要使用户系统更加可行时,已经有一些非常棒的插件可以让管理员操纵用户角色。WPFront‘s特别成熟,其特点包括:

  • 每个用户的多个权限级别。
  • 编辑任何用户权限组。
  • 无限地创造额外的角色。

WPFront's User Role Editor

任何类似的插件都可能对站点管理员有用,给每个用户适当的用户权限。

在使用用户角色插件进行安装时,值得提前计划,考虑所有未来用户在创建和分配新角色之前可能需要做些什么。

这仅仅是因为一种零敲碎打的方法可能会给您留下一个功能更强大的用户权限系统,但由于它随着时间的推移而变得如此复杂,使得不同权限的数组难以管理,因此是无法导航的。提出一个简单的结构,特别是要记住,在创建新角色之前,用户可以拥有多个权限级别,这将确保您的安装及其改进的用户系统为满足未来的任何需求做好了充分的准备。

另外要记住的一点是,在创建额外的用户角色之前,应该安装和激活将在站点上使用的其他插件。这是因为一些高级插件(包括bbPress、BuddyPress和WooCommerce)可能会添加自己的用户角色和/或权限。

第2步:使您的作者可接触

任何多用户博客的一个关键部分将是使作者具有个性。增加读者与作家的互动将使读者更有可能继续阅读他们的文章。

WordPress实际上曾经有一些接触方法内置到它的配置文件系统中,尽管在最近的版本中,这些方法已经从核心中删除了。以更贴切的方式将此功能重新添加到系统中的可能性仍然存在,对于多用户站点来说也是非常有益的。有些主题可能已经内置了类似的特性,但是可以通过对主题代码的一些小调整来扩展这些特性(但是请记住使用子主题的重要性).

加到Functions.php

function add_author_contacts( $author_contacts ) {
$author_contacts['facebook'] = __( 'Facebook URL', 'text_domain' );
$author_contacts['googleplus'] = __( 'Google+ URL', 'text_domain' );
$author_contacts['twitter'] = __( 'Twitter Username', 'text_domain' );
// Copy and add any extras...
return $user_contact_method;
}
add_filter( 'user_contactmethods', 'add_author_contacts' );

这将为每个链接添加额外的文本框。联系信息.

Extra text boxes to your profile pages

增加主题

设置这些内容后,可以使用the_author_meta()-例如,如果填写了字段,就会出现指向作者Twitter配置文件的链接:

<?php if( get_the_author_meta( "twitter" ) != "") { ?>
<div class="author-media-link twitter"><a href="http://twitter.com/<?php echo the_author_meta( "twitter" ); ?>" target="_blank" title="<?php echo the_author_meta( "display_name" ); ?>'s Twitter">@<strong><?php echo the_author_meta( "twitter" ); ?></strong></a></div>
<?php } ?>

这样,网站上使用的主题可以允许高度定制的作者详细信息。

这些特性的有效实现可能是添加了一个Auth.php页(如果主题尚未包含主题)。或者,添加(或编辑,如果主题已经有一个)的作者传记框,以一种特定的方式定制到一个网站,可以是一个很好的特点,每一篇文章。Gravatar也使这个看起来很棒。

将其编码成一个主题并不是完全必要的,如果它看起来太让人望而生畏,那么就有一些插件,例如时尚作家盒可用。但是,将代码添加到主题中的好处是,它允许管理员进行更大的操作。除了与社交网络的链接外,还可以添加其他链接,如部门页面或联系人表单;编码解决方案甚至可以添加额外的文本,例如组织中的职位或级别。

第三步:为作家使用前端

如果您已经做到了这一点,那么可以公平地说,您对如何使用WordPress的基本功能比较满意。然而,在有许多作者的网站上,这样的一款网络软件对许多人来说可能是一个巨大的前景。

在我看来,WordPress是一个“一旦你知道怎么做就很容易”的例子,但是没有理由不尝试通过在熟悉的网站前端添加少量功能来使第一次网络紧张的作者更容易地浏览它。事实上,也可以为较重的用户添加一些非常有用的“快速链接”。特别是当与用户角色插件一起使用时(参见步骤1),在主题的前端添加一些只有某些登录用户能够看到的额外内容可以节省大量时间。

对于登录站点用户来说,这个额外的前端部分的内容实际上取决于编码的可行性。例如,如果一个网站想要运行一个系统,让投稿人至少每周提交一次内容,那么最好开发一个系统,检查用户最后一次发布帖子的时间,并显示一条消息,要求在截止日期过期时提供新内容。

定西做网站在其他情况下,为站点工作人员在前端添加新闻可能会很有帮助,这样就可以快速看到;对于某些站点来说,只需要欢迎一个不太熟悉Web的用户回来,并有指令引导他们完成添加内容的过程,这样管理员就不必每次都这样做了。

正如我所说,这取决于网站的需要。

Frontend prompt

最基本的是,下面是如何做到这一点-将以下内容添加到Functions.php:

function get_user_role() {
global $current_user;
$user_roles = $current_user->roles;
$user_role = array_shift($user_roles);
return $user_role;
}

然后,如果希望登录用户根据角色查看某些内容,请添加以下内容:

<?php if(is_user_logged_in()) {
if(get_user_role()=="administrator") {
// For administrators
}
// etc.
} ?>

这种相对简单的方法可以大大简化没有经验的用户的事情,并利用权限系统来造福于作者和管理员。这也是一些非常交互式的WordPress安装管理员-例如,那些运行BuddyPress≠的管理员-可能会为正常的站点用户提供服务,欢迎他们通过前端返回站点,这样后端就只能保留给管理员了。

同样,如果要将此功能添加到不是您自己的自定义主题中,请记住使用子主题。

如果可能的话,current_user_can( 'manage_options' )可能是确定权限的更好方法-但根据站点授予的权限,这可能无法完全工作。如果使用current_user_can( 'manage_options' ),没有必要添加到Functions.php.

这些简单的更改可以使WordPress对读者、作者和管理员都有更好的效果。