使用WordPress後台上傳

剛開始接觸WordPress的人應該都是用後台TinyMCE的〔新增圖片〕這個功能來上傳圖片的:

使用WordPress後台上傳圖片

這樣子的作法有許多的缺點,現在就讓我們來看一下你上傳圖片之後,WordPress程式究竟為了作了哪些事?

首先你可是看到你的圖片可以在【媒體庫】中找到,就像圖中的這一張「13-7.jpg」的圖片:

使用WordPress後台上傳圖片

而這張圖片的內定位置是放在主機「wp-content/uploads」裡面,會依你上傳的年月分目錄來存放的,但是當你用FTP程式進入主機的檔案系統時,你會發現:圖片不只一個檔案而已!像這一張「13-7.jpg」除了你本來上傳的檔案之外還多出了「13-7-256x256.jpg」「13-7-512x298.jpg」兩個檔案:

使用WordPress後台上傳圖片

為什麼會多出來兩個檔案呢?原來在WordPress後台【設定】→【媒體】這邊有三個設定:分別是「縮圖」、「中等」和「大圖」三個等級,這個跟Flickr或是Picasa有一點類似,就是說WordPress會將你的圖縮成這裡指定的大小另為存為一個檔案,但是因為例子中的這一張小原圖小於1024,所以就沒有1024這一級的縮圖產生。

使用WordPress後台上傳圖片

這樣子的作法有什麼問題呢?聰明的你應該已經想到你可能用不到所有解析度的圖片,所以在主機的硬碟空間是浪費在儲存一些你用不到的檔案,當然你也可以想成是另外一種備份方式,這是缺點之一。

另外的缺點就要你的圖片慢慢多了之後你才會有感覺,因為整個圖片的目錄結構並不是你能完全掌握的,而且如果圖片多了可能這些圖片就會佔了你大半的流量,而當流量不夠的時候你有兩個選擇:1.買更大流量的主機空間。2.另外買一個主機空間來當圖床,將所有或是一部份的圖片放到圖床空間。如果是我會選擇第二種方式,因為這樣子以後整個站的靈活度會更高。

圖床空間的目錄管理

所以既然是用WordPress就要用比較好的方式來管理圖片,以下是高登目前的作法大家可以參考看看。

我的作法是在主機的根目錄下新增一個叫「image」的子目錄,在這個子目錄下再依你自己個人的喜好分成許多子目錄,然後將圖片用FTP程式上傳到主機,就像是這樣子:

使用WordPress後台上傳圖片

然後在〔新增圖片〕的時候,選〔自網址〕,在網址列輸入你的圖片URL,像這篇文章的第一張圖片就是「https://gordon168.tw/image/wordpress/ftp/upload.png」,這個跟你從網路相簿引用圖片的方法是一樣的,只是網址是在你自己的主機裡面。

使用WordPress後台上傳圖片

但是這樣子作也有不方便的地方,那就是不會自動產生縮圖,所以如果你的同一張圖有分大小圖的話,就要先在電腦用程式處理好分別存檔,然後通通都用FTP上傳到主機,好處是只有你要用的的圖會在主機,而不會有浪費空間的情形。

用子網域來當圖床

這樣子作還有一個好處,就是你可以在主機後台開一個子網域,然後將這個子網域指向「image」這個目錄:

使用WordPress後台上傳圖片

這樣子上面例子中的這一張圖網址既可以是「https://gordon168.tw/image/wordpress/ftp/upload.png」,也可以是「https://image.gordon168.tw/wordpress/ftp/upload.png」,好處是你可以隨時將圖床搬到其他主機,你只要將子網域指向那一台主機就可以了,是不是很方便呀?

更換圖床網址

當然從現在開始你的新圖片網址可以用以上的方式來作,但是以前的舊文章呢?也很簡單,只要一個SQL指令就搞定了,而這個指令你可能在很多時候都會用到,要仔細了解它的用法喔!

要更換圖床網址請你從主機後台進入「phpMyAdmin」管理程式,然後按〔SQL〕指令按鈕,輸入以下的語法:

update wp_posts set post_content=REPLACE(post_content,'原來字串','新的字串') 

記得「wp_」的前置碼如果你有改過請改成你的前置碼。

像我要將所有「gordon168.tw/image」替換成「image.gordon168.tw」就下:

update wp_posts set post_content=REPLACE(post_content,'gordon168.tw/image','image.gordon168.tw') 

一個指令就搞定了,不過提醒你如果SQL不熟的請先備份資料庫,不然改錯了後果是很慘的喔,切記!