性价比最高的香港ASP、PHP主机提供商
做网站,就上凡科建站

删除/添加/调用WordPress用户个人资料的联系信息

Loading
0
天猫淘宝优惠券仅在搜码网!

如果你要折腾主题或者将WordPress站点开放注册,你可能需要自定义WordPress用户个人资料信息。下面倡萌将简单说一下如何删除、添加和调用自定义用户信息字段。

添加或删除字段,可以在主题的 functions.php 文件添加下面的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
 * 自定义用户个人资料信息
 * https://www.wpdaxue.com/add-remove-display-wordpress-user-profile-fields.html
 */
add_filter( 'user_contactmethods', 'wpdaxue_add_contact_fields' );
function wpdaxue_add_contact_fields( $contactmethods ) {
	$contactmethods['qq'] = 'QQ';
	$contactmethods['qm_mailme'] = 'QQ邮箱“邮我”';
	$contactmethods['qq_weibo'] = '腾讯微博';
	$contactmethods['sina_weibo'] = '新浪微博';
	$contactmethods['twitter'] = 'Twitter';
	$contactmethods['google_plus'] = 'Google+';
	$contactmethods['donate'] = '赞助链接';
	unset( $contactmethods['yim'] );
	unset( $contactmethods['aim'] );
	unset( $contactmethods['jabber'] );
	return $contactmethods;
}

以上代码通过 user_contactmethods 这个钩子添加了QQ等多个自定义字段,同时移除了 yim、aim和jabber,用法一目了然,就不多说,效果如下图所示:

user-profile-fields-wpdaxue_com

如果要调用上面的字段,只需要使用 the_author_meta() 或 get_the_author_meta() 这两个函数即可。

the_author_meta() 直接打印输出字段值

get_the_author_meta() 返回字段值给其他函数调用

注:一般而言,WordPress大多数函数都有类似这两种,一个带 get_ 前缀,一个没有,两者用法的区别如上所说。

比如我们要调用QQ字段,可以使用使用下面的代码:

1
2
3
4
5
6
<?php
//打印输出QQ字段的值
the_author_meta( 'qq' );
//或者下面的
echo get_the_author_meta( 'qq' );
?>

我们在实际使用的时候,最好先通过 IF 语句判断用户是否填写了 QQ 这个字段(即判断QQ字段是否存在值),如果填写了,就输出,否者不输出

1
2
3
<?php if ( get_the_author_meta( 'qq' ) ){
	echo '作者QQ:'.get_the_author_meta( 'qq' );
}

关于调用更多默认的字段,建议大家自己参考 the_author_meta()get_the_author_meta()

注:在没有指定用户ID等明确信息时,以上两个函数只能在循环(Loop)内才能正常使用。

推荐阅读:

如何获取WordPress当前用户信息

WordPress用户资料添加自定义用户头像功能

支付宝扫码打赏 微信打赏

如果本文对你有帮助,请打赏作者,鼓励我们继续写作!

WordPress快站:让WordPress建站更简单

关于 倡萌

一个疯狂的 WordPress 爱好者,喜欢折腾 WordPress 主题,分享 WordPress 资源。如果你也喜欢 WordPress,欢迎和我一起交流!

精彩推荐

无插件为你 WordPress 站点添加移动端样式

无插件为你 WordPress 站点添加移动端样式

文章模板 single.php 获取当前文章所属的分类名称

文章模板 single.php 获取当前文章所属的分类名称

31 条评论

  1. 请问大神,我在用户个人资料里添加了手机号,修改的时候怎么验证手机规则,提示错误信息呢

  2. 请问如果我想将某一新增的信息栏,只有管理员看见到或才能够填写!?
    例如:$contactmethods[‘qq’] = ‘QQ’;
    这一栏位只有管理员能够看到或填写…其他的BLOG角色没权限…

    • 可以试试

      if(current_user_can('manage_options' )){
          $contactmethods['qq'] = 'QQ';
      }
      
      • 改好了!…其中facbook的信息,只有管理员能够查看及编辑…
        function wpdaxue_add_contact_fields( $contactmethods ) {
        if ( !isset( $contactmethods[‘facebook’]) && current_user_can( ‘create_users’ ) )
        $contactmethods[‘facebook’] = ‘Facebook’;
        $contactmethods[‘qq’] = ‘QQ’;
        unset( $contactmethods[‘yim’] );
        unset( $contactmethods[‘aim’] );
        unset( $contactmethods[‘jabber’] );
        return $contactmethods;
        }
        add_filter( ‘user_contactmethods’, ‘wpdaxue_add_contact_fields’ );

  3. hi,请教,在后台添加带单项框的个人信息项目,代码如何写呢?多谢啦

  4. 帅气小琦琦

    严重学习了 WP大学果然是一个大学 很多东西都可以在这里找到

  5. 头部和页脚文件怎么才能调用????

  6. 怎么在前台调用用户头像?

  7. 哥哥 太感谢你了 正好我能用得上 我新建了一个每日语录 然后添加了一个字段作者 哈哈 有空去看看指导一下 http://www.erwas.cn

  8. 你好,我想要问一下,我一个站点只是想把腾讯微博修改成Twitter,这个该在哪里操作呢?我有一个站的主题里面可以直接修改,但是另一个站用的另一个主题,我尝试在wordpress主程序里也没看到。

发表评论