一夜未拔H圆房~h_国产乱人对白_久久久久国色AV免费看_一二三四社区在线中文视频_丰满的熟妇岳中文字幕_97久久久亚洲综合久久_免费的很黄很污的视频_国产精品久久久久久人妻_人妻aⅴ中文字幕_

WordPress增加媒體中文名稱,圖片上傳和重命名(優(yōu)化版)

當前位置: 首頁 > 常見問題

WordPress添加媒體上傳圖片時,我們有時會為圖片選擇中文名字。因為WordPress是國外的程序,對中文命名的圖片不友好,所以上傳后會有錯誤。但是有時候我們保存在桌面或者其他地方的圖片都是用中文命名的?,F在我們必須將它們上傳到WordPress多媒體或文章中。我們做什么呢

俗話說“功夫不負有心人”,問題是我發(fā)現的。如果原編碼問題是中文,那么wp的縮略圖機制就無法處理,于是我的問題就產生了。

在wp-admin/includes/file.php文件中,有一段代碼,其中第一行控制我們上傳的圖片的命名:

//?Move?the?file?to?the?uploads?dir $new_file?=?$uploads[‘path’]?.?“/$filename”; ?//新上傳的圖片按上傳時的名稱顯示 if?(?false?===?@?move_uploaded_file(?$file[‘tmp_name’],?$new_file?)?)?{ if?(??===?strpos(?$uploads[‘basedir’],?ABSPATH?)?) $error_path?=?str_replace(?ABSPATH,?”,?$uploads[‘basedir’]?)?.?$uploads[‘subdir’]; else $error_path?=?basename(?$uploads[‘basedir’]?)?.?$uploads[‘subdir’]; return?$upload_error_handler(?$file,?sprintf(?__(‘The?uploaded?file?could?not?be?moved?to?%s.’?),?$error_path?)?); }

既然問題定位了,當然是趕緊解決,讓畫面正常顯示!

處理方法匯總

既然問題已經浮出水面,據一位度娘的忠實粉絲說,當然先去百度一下尋找答案。以下是百度找到的答案。

第一個是修改wp的程序文件file.php。

在file.php尋找下面的代碼。

$new_file?=?$uploads[&#;path&#;]?.?&#;/$filename&#;;

將上面的代碼修改為

$new_file?=?$uploads[&#;path&#;]?.?&#;/&#;.date(&#;YmdHis&#;).floor(microtime()*).&#;.&#;.$ext;

顯示結果以“年、月、日、小時、分鐘+千毫秒整數”的格式命名。

這種方式有很大的弊端:首先上傳的圖片會全部被重命名;第二,當wp更新到新版本時,需要再次修改代碼。

第二:向主題functions.php添加代碼。

function?wpyou_rename_upload_file_prefilter($file){ $time=date(&#;Y-m-d&#;); $file[&#;name&#;]?=?$time.&#;&#;.mt_rand(,).&#;.&#;.pathinfo($file[&#;name&#;]?,?PATHINFO_EXTENSION); return?$file; } add_filter(&#;wp_handle_upload_prefilter&#;,?&#;wpyou_rename_upload_file_prefilter&#;);

實現效果和第一個一樣,不用每次wp更新都反復修改程序文件,但缺點是上傳的圖片都會被重命名。

完美的解決方法

如果我按照上面的方法修改,我上傳的圖片都會被重命名,對于我這種用云盤存儲圖片的用戶來說是個麻煩,只能自己動手了。這里有一個完美的解決方案。上傳圖片時,主題會檢查圖片名稱是否包含漢字。如果是的話,重命名的機制將被實現。如果沒有,上傳的名稱將直接作為圖片名稱,下面的代碼可以直接添加到主題的functions.php文件中。

通過上面的代碼片段,最終完美解決了中文圖片無法顯示縮略圖的問題??磥硪院筮€需要研究wp程序的一些功能!今天就把這個方法寫到這里,希望能幫助到和我有同樣問題的朋友!

/* 中文名圖片上傳改名 /* ——————- */ function tin_custom_upload_name($file){ if(preg_match(‘/[一-龥]/u’,$file[‘name’])): $ext=ltrim(strrchr($file[‘name’],’.’),’.’); $file[‘name’]=preg_replace(‘#^www\.#’, ”, strtolower($_SERVER[‘SERVER_NAME’])).’_’.date(‘Y-m-d_H-i-s’).’.’.$ext; endif; return $file; } add_filter(‘wp_handle_upload_prefilter’,’tin_custom_upload_name’,,); 如果上面的不行可以試試下面的這個

自用的

,感覺可以(優(yōu)化版) //WordPress上傳中文字體圖片自動轉換為域名日期時間 function tin_custom_upload_name($file){ if(preg_match('/[一-龥]/u',$file['name'])): $ext=ltrim(strrchr($file['name'],'.'),'.'); $file['name']=preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])).'_'.date('Y-m-d_H-i-s').'.'.$ext; endif; return $file;} add_filter('wp_handle_upload_prefilter','tin_custom_upload_name',,);

作者:徐州百都網絡 | 來源: | 發(fā)布于:2022-03-20 01:08:49