!
也想出现在这里? 联系我们
广告位

WordPress主题前台页面添加用户头像

WordPress 主题默认的用户头像是采用 gravatar 头像,gravatar 头像是会球公认头像,使用非常广,很多程序都用它。但是,它必须要要它的官网去注册,这对于一些普通用户来说就不太方便J D V M { x H $了。前段时间,有个 Q 友问我:“wp 主题用户中心T O $ 0 p g { V e怎样在前端页面就可以添加自定义用户头像呢?” 这也就是我今天所要讲的内容。

其实,wp 主题要想实现在前台页面添加用户头像的功能,也不是个大难题,思路:我| + ^ : G们可以给 wordpress 主题数据库添加一个用户自定义字段,然后把前台上传的图片保存到这个自定义字段中,在前台模板中需要用户头像的地方,就调用这个自定义字段就可以了。

第一步:在 wp 主题用户中心的个人资料修改页面添加用户头像上传表单:

  1. <form action="" method="post" enctype="multipa! R e ]rt/form-data">
  2. <!-- 用户图像 -->
  3. <div class="change-photo-btn&quo_ + A T H k 3 O Nt;>
  4. <div class="photoUplo\ 7 % y f 2 ead">
  5. <span&gtn R E v S c ^ T;<i class=&q\ P 9 w ` ~uot;fa fa-upload"><a j \ ) H $ R/i> 上传图像</span>
  6. <ind 6 2 ? / * 5 .put type="file" class="upload" nao S _ ! t B C _ 6me="simpH V 0 Y l 2 ele_local_avatar"/>
  7. </div>
  8. </div>

这里的 simple_local_avatar 就是用户头像自定义字段键名。注:上传图片的表单必须要加上 enctype="multipart/form-data" 这个,没有这个就无法上传。

第二步:在 wp 主题的 functions.php 文件中添加上传图片的处理函数代码

  1. //K 9 * N图片上传函数:上传单张图片
  2. //参数1:3 ] z e h K图片信息; 参数2:存放图片路径
  3. function upload_image($info,$path){
  4. //获取图片后缀
  5. $pre = strrchr($info["name"],&q1 Z C F ? B )uot;.");
  6. $img_name = date("YmdHis").$pre;
  7. //错误过滤
  8. if($info[e ` ^ K n ) J"eI } o , ( ] = # urror"]>0){
  9. switch($info[&quo[ d w q S f z N Nt;error"]){
  10. case 1: echo "文件大小超过php.ini设置的大小 2M。"; break;
  11. case 2: echo "文件大小超过表单设置的大小。"; break;
  12. case 3: echo "文件* \ a @ m D p只有部分被上传。"; break;
  13. ca{ q C d cse 4: echo "没有文件被上传。"; break;
  14. case 6: echo &d j y t V , f g yq1 Y 0 p N m (uot;找不到临时文件夹。v m P L"; break;
  15. case 7: echo "文件写入失败。"; break;
  16. }J G Z ~
  17. echo '<script>alert("返回添加图片页面。")i K ! G \; wiE v cndow.history.back(); </\ d @ { ; 6 p _script>';
  18. exit;
  19. }
  20. //图片类型过滤
  21. $pic_a\ q ] $ ? orr = array("image/U \ ` e 6 : D ] 9jpeg","image/jpg","image/pjpeg","image/p- V T d u Sng","image/x-png","image/gif");
  22. if(!in_a~ t Yrray($info["type"],$pic_arr)r K * U41;W o O ?123;
  23. echo '<script>alert(&quM 6 ~ kot;上传的文件必须是 jpg、png、gif格式的。");g @ ^ ^ \ window.history.back();</script>';
  24. exit;
  25. }
  26. //图片大小过滤v w f * c & . F L
  27. if($infoB p ]91;"size"]>(10*1024*1024)){
  28. echo '<script>alert(&qK F Q K b ruot;上传图片的大小不f S ` a h R k 6能超过 10M。"); window.history.back();</script>';
  29. exit;
  30. &k = V g V _ ( 2 T#125;
  31. if(is_uploaded_file($info[X q Y G & a _ ,;"tmp_name"]))&3 _ / v#123;
  32. move_uploaded_file($info["tmp_n; c P p j x ` % Kame&qs 5 \ N auot;],$path.$img_name);
  33. return $img_name;
  34. B q F A 5 e l { p5;
  35. }

第三步:上传图片并保g z X存到数据库:

  1. $O 3 k 2path = WP_CONTENT_DIR.'/uploads/users_avagar/'; //在 uploads目录下创建一个 ux M } . 5 , f | )sers$ 7 \ w ? ] :_avagar目录
  2. if(!is_dir($path\ w j j S o R {41;){
  3. mkdir($path&u R h ) M#41;% _ h 7 L v c;
  4. }
  5. //组合 图片url
  6. $img_urL % F G V Ml['full'] = WP_CONTENT_URL.'/uploads/users_avagar/'.upload_imaU Y 2ge($f- - } Q { 5 D 0 wiles,$path);
  7. update_user_m, } \ P S t O veta($uid,'simple_local_avatar',$img_uN ) J H j - E Trl); //写入G D t : |数据库

通过上面的 3 步,我们就对 wp 主题实现了用户在前台页面就可以上传修改自定义头像了,然后在需要调用. A 2 } &头像的地方,使用 get_user_meta() 方法来调用。不过,这种方法也有一个缺陷:就是没有跟 gravatar 头像调用方法通用,调用 gravatar 头像的方法:get_avatar(a A ^ @ u & f K) ,如查想使用 get_avatar 来调用我们这个自定义头像,可以添加一些判断处理,这里就不多做介绍了。

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

TimePlus - 超级商店WooCommerce主题

2022-11-4 11:12:26

WordPress教程

WordPress统计全站文章数量/运行天数代码/评论数量代码

2022-11-4 11:13:36

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索