標簽:WordPress
WordPress技巧解決WordPress升級到4.4.1后定時發布文章失敗的問題
之前為大家分享過解決定時發布文章失敗的方法:WordPress定時發布文章失敗的解決方法 而這次特發此文,就是告訴大家,前篇文章介紹的解決辦法,就是造成升級后無法定時發布成功的問題所在。升級后的解決辦法,打開主題的functions.php文件,找到以下代碼:<?phpif(!function_exists('add_action')){ header('Status 403 Forbidden');header('HTTP/1.0 403 Forbidden');header('HTTP/1.1 403 Forbidden');exit();}?><?php function wpms_log(){ echo"\n<!--Plugin WP Missed Schedule 2011.0920.2011 Active-->"; } add_action('wp_head','wpms_log'); add_action('wp_footer','wpms_log')?><?phpdefine('WPMS_DELAY',5);define('WPMS_OPTION','wp_missed_schedule');function wpms_replace(){ delete_option(WPMS_OPTION); } register_deactivation_hook(__FILE__,'wpms_replace'); function wpms_init(){ remove_action('publish_future_post','check_and_publish_future_post'); $last=get_option(WPMS_OPTION,false); if(($last!==false)&&($last>(time()-(WPMS_DELAY*60))))return; update_option(WPMS_OPTION,time()); global$wpdb; $scheduledIDs=$wpdb->get_col("SELECT`ID`FROM`{$wpdb->posts}`"."WHERE("."((`post_date`>0)&&(`post_date`<=CURRENT_TIMESTAMP()))OR"."((`post_date_gmt`>0)&&(`post_date_gmt`<=UTC_TIMESTAMP()))".")AND`post_status`='future'LIMIT 0,5"); if(!count($scheduledIDs))return; foreach($scheduledIDs as$scheduledID){if(!$scheduledID)continue; wp_publish_post($scheduledID);} } add_action('init','wpms_init',0)?>將其刪除或注釋即可解決,應該是WordPress將改問題解決了。有任何疑問,歡迎在下方評論區提出,也歡迎在頁面頂部右方關注我的微博(@成航先森)。
WordPress技巧解決使用百度UEditor編輯器后移動端圖片被拉伸問題
本站之前的文章,基本存在一個問題:用手機訪問,查看文章時圖片有明顯縱向拉伸問題。之前覺得沒什么,但是最近先森的強迫癥犯了,非要把這個問題解決了不可。開始,先森以為是七牛緩存圖片的設置問題,但是“七牛云儲存”插件、七牛空間管理找來找去,設置多次之后,無奈的發現,問題還是沒有解決。再后來,開始懷疑是阿里云主機的問題,但是通過測試也排除了。最后,通過站長之家的移動跨屏模擬,查看審查元素后發現,圖片的高度,是先森在百度UEditor編輯器中給圖片設置的高(圖片單擊放大)。經過調試發現,<img>標簽中的style就是影響移動端自適應的問題所在。將整個style刪除后,既不會影響PC端圖片大小,也會使自適應恢復。這也是吃了直接用網上代碼,先森自己沒有研究過自適應的虧,發現問題還繞了很大的彎。通過排查發現,只要通過百度UEditor編輯器設置圖片的寬高,即會自動添加width、height、border、vspace以及style屬性,style屬性中也包含width與height,也就是編輯器同時設置了兩組寬高。而我們要做到的是使UEditor編輯器設置圖片寬高時,不添加style屬性。通過在官方文檔中尋找解決方法無果后,開始在插件中的代碼中尋找,終于找到了關鍵代碼。在服務器中打開/wp-content/plugins/ueditor/ueditor/dialogs/image,找到image.js文件,打開編輯(點擊放大):如上圖,打開并找到第279行,將以下代碼刪除或注釋:style: "width:" + data['width'] + "px;height:" + data['height'] + "px;"如此,即可解決設置圖片時自動添加style的問題,也就解決了自適應問題。有任何疑問,歡迎在下方評論區提出,也歡迎在頁面頂部右方關注我的微博(@成航先森)。
WordPress技巧解決百度UEditor編輯器上傳的圖片無法被七牛CDN自動緩存問題
百度UEditor編輯器雖然非常好用,但是卻也存在著一些與其它插件沖突的情況。下面要為大家分享的是通過百度UEditor編輯器上傳的圖片,無法被七牛CDN自動緩存的解決方法。之前為大家推薦了百度UEditor插件,不了解的可以看看:百度UEditor編輯器插件1.4.3.1 For WordPress原因分析通過百度UEditor編輯器上傳的圖片,通過審查元素我們可以看到,圖片鏈接只有路徑(點擊放大):而產生只有路徑的原因是百度UEditor編輯器上傳圖片時自動添加的地址就只有路徑:而要達到使七牛識別,圖片鏈接就必須帶上網站地址,如下圖所示(點擊放大):解決方法我們需要達到的目標是鏈接完整,而UEditor編輯器上傳的圖片,從上傳時的鏈接就不完整,所以我們需要解決的就是讓UE編輯器總動在鏈接上添加網站鏈接,使鏈接完整。在服務器上打開/wp-content/plugins/ueditor/ueditor/php文件夾,找到config.json文件,編輯這個文件,打開如下(點擊放大):我們可以看到,小編為本站編輯好的第11行紅框位置,只要在雙引號中添加自己網站地址即可。2016年3月10日更新先森為了發出此文之前的文章內圖片也能重新被七牛緩存,動了點腦子,想要解決這個問題。首先,之前的文章圖片的問題就是只有鏈接只有路徑,沒有域名,所以先森首先想到的就是為圖片添加域名。在2016年3月9日先森發布的文章中提到過,知更鳥為我們提供了一個為WordPress文章圖片自動添加鏈接到原圖的代碼:WordPress插件Auto Highslide代碼化折騰小記知更鳥的代碼是為WordPress文章中圖片添加鏈接,所以先森就想就此代碼進行改編,使其能夠為圖片增加域名。先森的JavaScript純屬自學,而且只學了一點,雖然最后成功了,但其中的艱辛卻無人可知。不多說,這接上最終代碼:<script type="text/javascript">$(function() { $('#newsContent img').each(function(i){ var str=$(this).text() //或許應該是var str=this.src if(str.indexOf("capjsj.cn")==-1){ $(this).attr("src",this.src); } });});</script>然而代碼雖然是弄出來了,但是先森發現,這只是從表面上更改了鏈接,然而源代碼確是沒有改變,所以就無法緩存這些圖片了。不過,雖然繞了個大彎子,但先森還是終于想到了正確的做法——替換。先森的數據庫沒有學好,所以一直小心翼翼的不敢去觸碰數據庫,但這次終于還是要碰了。數據庫的替換語句大概是這樣的:update 表 set 內容字段=replace(內容字段,'需要被替換字符串','替換字符串')先森的替換代碼是這樣的:update wp_posts set post_content=replace(post_content,'src="/ueditor','src="//www.cnidcc.cn/ueditor')即:用'src="//www.cnidcc.cn/ueditor'替換掉'src="/ueditor'。這樣非常簡單的就解決了問題,論學好知識的重要性。。。有任何疑問,歡迎在下方評論區提出,也歡迎在頁面頂部右方關注我的微博(@成航先森)。
WordPress技巧百度UEditor編輯器插件1.4.3.1 For WordPress
在很早以前,小編就覺得WordPress自帶的編輯器很難用,簡易又不適合中國人的口味,所以早早的就將編輯器換成了百度的UEditor編輯器。今天就為大家推薦下這款UEditor編輯器。首先,我們來將wordpress默認編輯器和百度UEdito編輯器做一個對比:WordPress默認編輯器:百度UEditor編輯器:UEdito簡介: UEditor編輯器 For WordPress插件最早由taoqili開發,SamLiu改進,但兩位作者均不再發布更新版本,大山在此基礎上更新到Ueditor1.4.3.1。 UEditor編輯器內置了代碼高亮功能,對于碼農來說,簡直是神器級編輯器插件啊。wordpress ueditor插件集成的功能:百度地圖、音樂播放器、視頻播放器、百度應用、谷歌地圖。UEdito演示地址:http://ueditor.baidu.com/website/onlinedemo.html從演示地址不難看出這款插件的功能跟我們在平時百度知道發評論的時候的界面沒有什么不同,對于國內的朋友來說,wordpress的編輯器功能實在是少的可憐,我們都是通過代碼的修改來達到擴展編輯器的目的,甚至裝上了編輯器擴展插件,以及代碼高亮的插件,但是這款插件的功能十分豐富,用一句話來說就是只有你想不到的,沒有這款插件沒有的,如果你會修改該插件的代碼還可以進行刪除自己不喜歡的功能而實現功能的定制。插件下載百度網盤:鏈接: http://pan.baidu.com/s/1c1bKhNy 密碼: sd46內容預覽:安裝插件前請查看使用說明,安裝插件的時候請上傳ueditor.zip。有任何疑問,歡迎在下方評論區提出,也歡迎在頁面頂部右方關注我的微博(@成航先森)。
建站分享, WordPress技巧WordPress百度主動提交插件避免重復提交
9月21日,百度推出了新的WordPress插件:Baidu Links Submit 前幾天,本站也對此發布了一篇文章:百度推出新的Wordpress鏈接提交插件當時剛看到公告,立馬就下載安裝了,有什么優缺點都還不知道。現在,經過幾天的使用,發現這個插件還是像以前的那個wp-baidusubmit一樣,存在嚴重的重復提交問題。也就是,修改已發布文章或頁面會重復推送到百度!一是會拖慢文章更新提交的速度,二是重復提交很有可能會被百度判斷為內容不穩定而放入沙盒,造成收錄延遲展示的問題!關于這個問題,通過張戈博客找到了解決辦法,下面就為大家介紹方法。修改代碼① 打開baidu-links-submit-9.23\inc\hooks.class.php ,打開至第114行,在下方插入以下代碼://已提交過的文章避免重復提交 if(get_post_meta($post_id,'Baidusubmit',true) == 1) return;效果如下,115-116行:另外,大神露兜提出,“get_permalink函數本身就支持post_id來做參數,百度原版的代碼何必再get_post一次呢?這樣應該好點:$_url = get_permalink( $post_id );”,也就是上圖中的第117行,也算是對百度自己做的代碼提出了優化。②打開baidu-links-submit-9.23\inc\common.class.php ,打開至第88行,在下方插入以下代碼: //判斷結果,如果成功則計入自定義欄目baidusubmit,值為1 if (!$error = $http->error()){ $ret = self::obj_to_array(json_decode($result,true)); if(!isset($ret['error'])){ add_post_meta($post_id,'Baidusubmit',1,true); } }效果如下,第85-95行:這樣就解決了重復推送的問題:文章首次發布時,會推送到百度,如果推送成功則新增一個名稱為baidusubmit的自定義欄目。回頭再來更新修改該文章時,則先判斷是否存在這個自定義欄目,如果存在則不再推送到百度。如果你鐵了心想讓某篇文章再大改后重新推送到百度,則只需要刪除該文章的自定義欄目baidusubmit即可:好了,這樣就OK了,快去試試吧!
建站分享, WordPress技巧百度推出新的WordPress鏈接提交插件
2015年9月21日,百度站長平臺推送了一個新的公告:“Wordpress鏈接提交插件上線的公告”,公告的內容如下:為了方便廣大使用wordpress建站的站長朋友及時提交數據,百度站長平臺設計和開發了一款wordpress插件—Baidu Links Submit工具,該工具是基于百度站長平臺ping2.0的鏈接提交接口。本插件只需您簡單的配置下您的site和token即可使用。確保您的網站以快速的提交方式,以保證新鏈接可以及時被百度收錄。大家對WordPress插件有任何的意見或者建議可以在站長社區[站長工具]wordpress鏈接提交插件討論帖中留言。WordPress數據提交插件下載地址公告中提到的“您的site和token”,可以在百度站長平臺中,網站的提交鏈接處找到。據說比較好用,本站也剛開始啟用,具體使用情況還不清楚。希望能比以前的插件好用。另外,此插件與wp-baidusubmit不會產生沖突。希望使用有什么問題的站長,能為大家提出所遇到的問題,給大家提個醒,謝謝。
建站分享, WordPress技巧修復WordPress4.2帶來的表情提交后不顯示問題
本站的主題是我自己一步一步做的,每個功能都是慢慢研究出來的,不停的增加著各種想要實現的功能。但是在制作主題時候,由于技術原因,很多功能暫時無法實現,就暫時的放下了。最近,想要將以前沒能實現的評論表情功能完善了,但卻還是出現了問題。問題的表現為:表情可以點開,但是在提交之后,顯示出來的是一個“😛”(方塊),情況如下:關于表情代碼如何添加,其實很簡單,總共需要3點,自定義的表情圖片、smiley.php文件、在comments.php文件中調用smiley.php的代碼就完成了,具體的方法網上很多,我就不再累述了。今天主要解決的是上文提到的問題。對于這個問題搜了很久沒有搜到解決方案,最后實在WordPress吧里問的一位遇到過同樣問題并已解決的站長,這位站長在他的網站上給了我解決方案,非常感謝他。解決方法其實是張戈博客提出的。出現評論的表情出錯,是因為 4.2 對評論表情的重構(樣式變更、名稱變更、CDN機制等)造成的,與 4.2 下的 emoji 關鍵標簽掛上了鉤,emoji 這個玩意暫時不適合天朝環境。修復補丁修改WordPress的程序文件比較麻煩,而且隨著WordPress的升級還會失效,所以就采取了php補丁的方式,只要集成到主題中就可以解決這些問題了!點擊下載下載的文件是patch_to_4.2.php ,文件中的代碼為以下內容,大家也可以自己創建:<?php/** * 修復WordPress升級4.2帶來的各種問題 By 張戈博客 * 修復說明: * ①、部分主題出現大量404請求 * ②、修復表情路徑異常問題 * ③、后續遇到問題將繼續更新 * */remove_action( 'wp_head','print_emoji_detection_script',7); //解決4.2版本部分主題大量404請求問題remove_action('admin_print_scripts', 'print_emoji_detection_script'); //解決后臺404請求remove_action( 'init', 'smilies_init', 5); //移除4.2版本表情鉤子remove_action( 'wp_print_styles', 'print_emoji_styles' ); //移除4.2版本前臺表情樣式鉤子remove_action( 'admin_print_styles', 'print_emoji_styles'); //移除4.2版本后臺表情樣式鉤子remove_action( 'the_content_feed', 'wp_staticize_emoji'); //移除4.2 emoji相關鉤子remove_action( 'comment_text_rss', 'wp_staticize_emoji'); //移除4.2 emoji相關鉤子remove_action( 'comment_text', 'convert_smilies', 20 ); //移除4.2 表情相關鉤子remove_action( 'the_content', 'convert_smilies' ); //移除4.2 表情相關鉤子remove_action( 'the_excerpt', 'convert_smilies' ); //移除4.2 表情相關鉤子 add_action( 'comment_text', 'convert_smilies_diy', 20); //自定義表情相關鉤子add_action( 'the_content', 'convert_smilies_diy' ); //自定義表情相關鉤子add_action( 'the_excerpt', 'convert_smilies_diy' ); //自定義表情相關鉤子add_action( 'init', 'smilies_init_old', 5 ); //自定義表情鉤子 //原函數 smilies_init 位于wp-includes/functions.phpfunction smilies_init_old() { global $wpsmiliestrans, $wp_smiliessearch; // don't bother setting up smilies if they are disabled if ( !get_option( 'use_smilies' ) ) return; if ( !isset( $wpsmiliestrans ) ) { $wpsmiliestrans = array( ':mrgreen:' => 'icon_mrgreen.gif', ':neutral:' => 'icon_neutral.gif', ':twisted:' => 'icon_twisted.gif', ':arrow:' => 'icon_arrow.gif', ':shock:' => 'icon_eek.gif', ':smile:' => 'icon_smile.gif', ':???:' => 'icon_confused.gif', ':cool:' => 'icon_cool.gif', ':evil:' => 'icon_evil.gif', ':grin:' => 'icon_biggrin.gif', ':idea:' => 'icon_idea.gif', ':oops:' => 'icon_redface.gif', ':razz:' => 'icon_razz.gif', ':roll:' => 'icon_rolleyes.gif', ':wink:' => 'icon_wink.gif', ':cry:' => 'icon_cry.gif', ':eek:' => 'icon_surprised.gif', ':lol:' => 'icon_lol.gif', ':mad:' => 'icon_mad.gif', ':sad:' => 'icon_sad.gif', '8-)' => 'icon_cool.gif', '8-O' => 'icon_eek.gif', ':-(' => 'icon_sad.gif', ':-)' => 'icon_smile.gif', ':-?' => 'icon_confused.gif', ':-D' => 'icon_biggrin.gif', ':-P' => 'icon_razz.gif', ':-o' => 'icon_surprised.gif', ':-x' => 'icon_mad.gif', ':-|' => 'icon_neutral.gif', ';-)' => 'icon_wink.gif', // This one transformation breaks regular text with frequency. // '8)' => 'icon_cool.gif', '8O' => 'icon_eek.gif', ':(' => 'icon_sad.gif', ':)' => 'icon_smile.gif', ':?' => 'icon_confused.gif', ':D' => 'icon_biggrin.gif', ':P' => 'icon_razz.gif', ':o' => 'icon_surprised.gif', ':x' => 'icon_mad.gif', ':|' => 'icon_neutral.gif', ';)' => 'icon_wink.gif', ':!:' => 'icon_exclaim.gif', ':?:' => 'icon_question.gif', ); } if (count($wpsmiliestrans) == 0) { return; } /* * NOTE: we sort the smilies in reverse key order. This is to make sure * we match the longest possible smilie (:???: vs :?) as the regular * expression used below is first-match */ krsort($wpsmiliestrans); $spaces = wp_spaces_regexp(); // Begin first "subpattern" $wp_smiliessearch = '/(?<=' . $spaces . '|^)'; $subchar = ''; foreach ( (array) $wpsmiliestrans as $smiley => $img ) { $firstchar = substr($smiley, 0, 1); $rest = substr($smiley, 1); // new subpattern? if ($firstchar != $subchar) { if ($subchar != '') { $wp_smiliessearch .= ')(?=' . $spaces . '|$)'; // End previous "subpattern" $wp_smiliessearch .= '|(?<=' . $spaces . '|^)'; // Begin another "subpattern" } $subchar = $firstchar; $wp_smiliessearch .= preg_quote($firstchar, '/') . '(?:'; } else { $wp_smiliessearch .= '|'; } $wp_smiliessearch .= preg_quote($rest, '/'); } $wp_smiliessearch .= ')(?=' . $spaces . '|$)/m';}//原函數 convert_smilies 位于wp-includes/formatting.phpfunction convert_smilies_diy( $text ) { global $wp_smiliessearch; $output = ''; if ( get_option( 'use_smilies' ) && ! empty( $wp_smiliessearch ) ) { // HTML loop taken from texturize function, could possible be consolidated $textarr = preg_split( '/(<.*>)/U', $text, -1, PREG_SPLIT_DELIM_CAPTURE ); // capture the tags as well as in between $stop = count( $textarr );// loop stuff // Ignore proessing of specific tags $tags_to_ignore = 'code|pre|style|script|textarea'; $ignore_block_element = ''; for ( $i = 0; $i < $stop; $i++ ) { $content = $textarr[$i]; // If we're in an ignore block, wait until we find its closing tag if ( '' == $ignore_block_element && preg_match( '/^<(' . $tags_to_ignore . ')>/', $content, $matches ) ) { $ignore_block_element = $matches[1]; } // If it's not a tag and not in ignore block if ( '' == $ignore_block_element && strlen( $content ) > 0 && '<' != $content[0] ) { $content = preg_replace_callback( $wp_smiliessearch, 'translate_smiley_diy', $content ); } // did we exit ignore block if ( '' != $ignore_block_element && '</' . $ignore_block_element . '>' == $content ) { $ignore_block_element = ''; } $output .= $content; } } else { // return default text. $output = $text; } return $output;}//原函數 translate_smiley 位于wp-includes/formatting.phpfunction translate_smiley_diy( $matches ) { global $wpsmiliestrans; if ( count( $matches ) == 0 ) return ''; $smiley = trim( reset( $matches ) ); $img = $wpsmiliestrans[ $smiley ]; $matches = array(); $ext = preg_match( '/\.([^.]+)$/', $img, $matches ) ? strtolower( $matches[1] ) : false; $image_exts = array( 'jpg', 'jpeg', 'jpe', 'gif', 'png' ); // Don't convert smilies that aren't images - they're probably emoji. if ( ! in_array( $ext, $image_exts ) ) { return $img; } /** * Filter the Smiley image URL before it's used in the image element. * * @since 2.9.0 * * @param string $smiley_url URL for the smiley image. * @param string $img Filename for the smiley image. * @param string $site_url Site URL, as returned by site_url(). */ //請注意!已將表情路徑定義到主題目錄下的 images/smilies 文件夾 $src_url = apply_filters( 'smilies_src', get_bloginfo('template_directory').'/images/smilies/'.$img, $img, site_url() ); return sprintf( '<img src="%s" alt="%s" class="wp-smiley" style="/*height: 1em; max-height: 1em;*/" />', esc_url( $src_url ), esc_attr( $smiley ) ); }?>將下載的文件解壓,并查看代碼倒數幾排中(“//請注意!已將表情路徑定義到主題目錄下的 images/smilies 文件夾”下)的表情路徑和你主題所用表情是否對應,若不對應請自行根據實際情況修改 /images/smilies 指向你的表情文件夾即可(若沒有表情文件,請從本文下載并上傳到主題目錄亦可)。 然后上傳到主題目錄,修改主題目錄下的 functions.php,在最后一個?>之前新增如下調用代碼即可://4.2 修復補丁,請注意 patch_to_4.2.php 路徑是否正確。include("patch_to_4.2.php");保存后,去前臺刷新應該就一切正常了,親測可用。
建站分享, WordPress技巧WordPress刪除文章的同時自動刪除縮略圖及圖片附件
WordPress刪除文章時,文章內所上傳到媒體庫的圖片等附件不會自動刪除,占用了網站空間,這些積累起來是相當可怕的,尤其是我們這些空間不大的學生黨們。因此下面說明通過幾行代碼的簡單方式實現在刪除文章時自動刪除縮略圖以及圖片附件,這樣就不用手動去媒體庫或者是服務器中尋找并刪除,準確而且效率高。實現代碼在主題下的functions.php最后一個?>前添加以下代碼:/* **刪除文章時刪除圖片附件*/function delete_post_and_attachments($post_ID) { global $wpdb; //刪除特色圖片 $thumbnails = $wpdb->get_results( "SELECT * FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID" ); foreach ( $thumbnails as $thumbnail ) { wp_delete_attachment( $thumbnail->meta_value, true ); } //刪除圖片附件 $attachments = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_parent = $post_ID AND post_type = 'attachment'" ); foreach ( $attachments as $attachment ) { wp_delete_attachment( $attachment->ID, true ); } $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID" );}add_action('before_delete_post', 'delete_post_and_attachments');說明這段代碼會在刪除文章時先執行函數內容,刪除特色圖片以及圖片附件,如果在使用action delete_post而不是before_delete_post將導致刪除文章后因媒體附件與文章關聯已取消而無法正確刪除。
建站分享, WordPress技巧WordPress中判斷用戶是否為管理員
有時候,我們在為WordPress主題的網站增加一些功能的時候,可能會需要判斷用戶是否為管理員。就像有些網站的評論框,就針對是否為管理員進行了不同的設定。下面,就來為大家介紹判斷的方法。一、判斷指定id的用戶是不是管理員該需求實現起來非常簡單,幾行代碼搞定,分享一下:function ludou_is_administrator($user_id) { $user = get_userdata($user_id); if(!empty($user->roles) && in_array('administrator', $user->roles)) return 1; // 是管理員 else return 0; // 非管理員}二、判斷當前登錄用戶是不是管理員如果是判斷當前登錄用戶是不是管理員,可以使用下面的函數:function ludou_is_administrator() { // wp_get_current_user函數僅限在主題的functions.php中使用 $currentUser = wp_get_current_user(); if(!empty($currentUser->roles) && in_array('administrator', $currentUser->roles)) return 1; // 是管理員 else return 0; // 非管理員}要實現呢,非常的簡單,但重要的是用在哪里,用處特色,各位看官去大開你的腦洞吧!
建站分享, WordPress技巧WordPress主題制作-支持文件上傳自動重命名
wordpress上傳文件,如果文件名重復的話,會覆蓋原文件,而中文名稱的文件則會出現亂碼,對于同一天上傳文件較多的站點,手動修改顯然很麻煩。百度有很多方法是通過修改程序源文件實現的,對于wordpress的更新速度,相當不方便。當然,解決的方法有很多,也不止上面和下面的這兩種,今天主要要介紹的是下面這種。本站用的是另一種方法,該方法以后再介紹給大家。下面介紹的方法是通過在當前主題的functions.php文件里添加相關函數代碼實現。缺點是每次更換主題的時候都要重新添加一次,適合不常更換主題模板的站點;優點當然是不受wordpress程序更新的影響!將下面的代碼添加至當前主題functions.php文件最后一個?>前:function rename_filename($filename) { $info = pathinfo($filename); $ext = empty($info['extension']) ? '' : '.' . $info['extension']; $name = basename($filename, $ext); return substr(md5($name), 0, 10) . $ext;}add_filter('sanitize_file_name', 'rename_filename', 10);以上代碼可以實現文件名稱在上傳過程中自動重命名,新的名稱規則是由系統自動生成的一個32位的MD5加密文件名,由于默認生成的32位文件名有點長,所以使用substr(md5($name), 0, 10) 截斷將其設置為10位。生成的文件名稱如:2ba0b99abec8c19b66d7.jpg修改前://cos.capjsj.cn/wp-content/uploads/2015/09/QQ截圖20150908144739.png修改后://cos.capjsj.cn/wp-content/uploads/2015/09/45c4c.png

川公網安備 51011202000104號