經(jīng)常有用戶給我反應(yīng),要求增加自定義頭像功能。WordPress的頭像可以通過統(tǒng)一gravatar服務(wù)設(shè)置,但很多用戶反應(yīng)說太麻煩,想要自定義效果。沒辦法,為了滿足你們,特意寫了這篇文章。純代碼實現(xiàn)WordPress自定義用戶頭像功能,不是插件,當然wordpress管理后臺也沒有設(shè)置的地方,此功能適用于前端用戶,非要管理員使用也是可以的,自己想想辦法吧。
頭像是一張圖像,自定義就需要保存用戶的頭像到服務(wù)器。這里上傳圖像到服務(wù)器可以使用wordpress提供的函數(shù),也可以使用PHP提供的基礎(chǔ)文件上傳函數(shù),這樣做需要注意安全,別被傳馬了。
<?phpif ('POST' != $_SERVER['REQUEST_METHOD']) {header('Allow: POST');header('HTTP/1.1 405 Method Not Allowed');header('Content-Type: text/plain');exit;}header('Content-Type:application/json; charset=utf-8');require dirname(__FILE__) . '/../../../../wp-load.php';if (!is_user_logged_in()) {print_r(json_encode(array('error' => 1, 'msg' => '必須登錄才能操作')));exit; }global $current_user;$path = WP_CONTENT_DIR.'/uploads/avatar/'; //在 uploads目錄下創(chuàng)建一個 avatar目錄if(!is_dir($path)){ mkdir($path); }extract($_POST);$pre = strrchr($_FILES['file']["name"],".");if($_FILES['file']["error"]>0){ switch($_FILES['file']["error"]){ case 1: print_r(json_encode(array('msg'=>'文件大小超過php.ini設(shè)置的大小 2M'))); exit; break; case 2: print_r(json_encode(array('msg'=>'文件大小超過表單設(shè)置的大小'))); exit; case 3: print_r(json_encode(array('msg'=>'文件只有部分被上傳'))); exit; break; case 4: print_r(json_encode(array('msg'=>'沒有文件被上傳'))); exit; break; case 6: print_r(json_encode(array('msg'=>'找不到臨時文件夾'))); exit; break; case 7: print_r(json_encode(array('msg'=>'文件寫入失敗'))); exit; break;}}//圖片類型過濾$pic_arr = array("image/jpeg","image/jpg","image/pjpeg","image/png","image/x-png");if(!in_array($_FILES['file']["type"],$pic_arr)){print_r(json_encode(array('msg'=>'圖片類型不允許')));exit;}//圖片大小過濾if($_FILES['file']["size"]>(1*1024*1024)){ print_r(json_encode(array('msg'=>'圖片大小不允許'))); exit;}$img_name=base64_encode($current_user->user_email).$pre;if(is_uploaded_file($_FILES['file']["tmp_name"])){ move_uploaded_file($_FILES['file']["tmp_name"],$path.$img_name); $img_url = WP_CONTENT_URL.'/uploads/avatar/'.$img_name; update_user_meta($current_user->ID,'tb_local_avatar',$img_url); print_r(json_encode(array('error' => 0))); exit;}
上面是我測試自定義頭像功能使用的代碼,沒考慮太多安全問題,使用時需要謹慎。
版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會員發(fā)布,如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除!謝謝!
轉(zhuǎn)載請注明: WordPress自定義用戶頭像實現(xiàn)代碼