wordpress技巧:给账户的联系信息加入不可编辑内容
题目取的有点绕口,具体情况是这个样子的:某用户希望开放部分帐号给用户,还希望在客户资料信息中附加几个字段,并且这几个字段只能由管理员来编辑更新,用户不能自行编辑。
对于wordpress来说,帐号管理这方面是比较低能的。后台提供的内容寥寥:姓名性别、联系方式,最多加上个人描述。然后其他内容,就交给WP码农们折腾了。功能就是订阅者、作者、管理员这么几个。所以在多用户的例子中,如果非要用wordpress,可能得下番功夫了。
如何自定义账户的联系方式
solagirl这里有篇好文,可以去围观一下:为用户资料添加新的联系方式
主要内容就是增加新的联系方式,并且把自带的那几个(AIM、Yahoo IM和Jabber/Google Talk)去掉。主要的代码如下:
1 2 3 4 5 6 7 8 9 |
add_filter('user_contactmethods', 'my_user_contactmethods'); function my_user_contactmethods($user_contactmethods){ $user_contactmethods['qq'] = 'QQ'; $user_contactmethods['msn'] = 'MSN'; unset($user_contactmethods['aim']); unset($user_contactmethods['yim']); unset($user_contactmethods['jabber']); return $user_contactmethods; } |
把上面的代码扔function.php里即可。如果需要增加其他条目,可以按格式写$user_contactmethods['条目的keyword'] = '后台显示名'
,然后依次添加进去即可。
实际效果如图
如果想在其他地方调用此内容,可以这么写
1 2 3 |
<?php $current_author = get_userdata(get_query_var('author')); echo $current_author->QQ;?> |
如何给账户加入不可编辑内容
我想了两种方式:1、把输入框disabled(但是通过代码编辑一下依然可以编辑);2、加入内容,管理员可见。
第一种可以用js处理一下,或者把输入框调整调整,加上disabled属性,不再多说。第二种我是这么写的(基本框架和格式和上面的一样):
1 2 |
if ( !isset( $contactmethods['twitter']) && current_user_can( 'create_users' ) ) $contactmethods['twitter'] = 'Twitter'; |
当前用户如果有权限来建立新帐号(管理员),即可编辑隐藏条目内容。显示效果如下:
用户视角
管理员视角
转载请注明转自:wordpress技巧:给账户的联系信息加入不可编辑内容
貌似也用不到这么多帐号
貌似效果很不错
搜索那些只有显示名字的用户比较麻烦,通常只看得到显示名字
用户不多,这个方法值得保存
我是单用户
一般单账号够用了,用不到那么多的用户账号
如果用wordpress做商业站点的时候就可以用了
但账号没什么问题吧
不是到iplaysoft里的特约作者什么的是不是这么设置的。
@不亦乐乎 这就不知道了,不过这个方法应该也可以实现。
又学一招,谢谢