WordPress 圖床管理

使用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,像這篇文章的第一張圖片就是「http://gordon168.tw/image/wordpress/ftp/upload.png」,這個跟你從網路相簿引用圖片的方法是一樣的,只是網址是在你自己的主機裡面。

使用WordPress後台上傳圖片

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

用子網域來當圖床

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

使用WordPress後台上傳圖片

這樣子上面例子中的這一張圖網址既可以是「http://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不熟的請先備份資料庫,不然改錯了後果是很慘的喔,切記!

60 則留言

  1. 之前都傻傻的沒想那麼多,不過最近圖越來越多,感覺有點苦惱了。敢問高登大,你新網站使用的國外空間沒有空間、流量限制。(我用的是Bluehost)那如果還是用傳統方法上傳,會對系統速度有影響嗎?

  2. 大哥動作還真是快!
    才和您邀有關圖床的文
    馬上就發了!
    不過我昨天已先搞定說!
    建議再加上圖床鎖連結網址的教學
    以及阻擋從址看到檔案目錄的教學
    避免惡意盜連或是駭客網頁情事發生
    --
    拆組達人 與您分享辦公事的大小事

  3. 我用都WLW傳到圖床!XD!
    我也想用子網域設定在圖床上,這樣在般圖床其實還蠻方便!!
    不過找不到適當的空間!囧!

  4. 高老爺,我去申請了godaddy的域名了
    就是教不落又更換網址囉
    麻煩請您幫忙修改交換連結
    這次為永久網址不會再變更了
    http://steachs.com/
    話說,你另一個站的申請教學後面沒寫
    我過2天來寫一篇godaddy的dns後續設定
    你要用嗎..

  5. 請問高登大哥,我是wordpress的初學者,之前將wordpress架在免費空間ihost上,最近把它幫到自己的主機上,最後發現新增圖片裡的本機上傳圖片時 , 出現顯示 " 無法建立目錄: /home/vol4/ihost.tw/ihost_3312749/htdocs/wordpress/wp-content/uploads/2009/05。伺服器是否允許寫入上層目錄?"

    請問是不是要到資料庫裡的wp-options做修改,將原本在ihost位置改到現在本機主機上 , 但要如何修改?謝謝

  6. 可以了!謝謝高登大哥
    因為本人在幫一個慈善機構作簡單的網頁剛好是用wprdpress的
    最後可以再請教最後一個問題嗎
    請問wordpress資料裡所有資料夾權限要怎樣設定比較好!因為有時會遇寫文章時或傳圖片上去時,會遇到無權限寫入目錄,謝謝

      • 恩!了解..
        所以只要將wp-content和uploads兩個資料目錄設為777就可以了
        那其他目錄就都設為775對吧!
        謝謝高登大哥的回答
        不知道高登大哥會不會再出一本wordpress的書籍
        因為我有買WordPress架站密笈
        不過還是覺得不是很詳細
        像你網站裡的wrdpress分類裡
        就都還滿適用的
        剛好都遇到
        如果可以
        滿期待你們在
        重新出一本
        最新版本
        謝謝

    • 你的主機商不讓你自己設,所以怎麼設對你來說已經不重要了!
      我們的是可以自己設的,但是因為主機後台程式(cPanel或是Plesk)不一樣,所以目錄結構就會不一樣,我這裡只是以cPanel的目錄為例,
      另外設一個子網域要花450元還要三個工作天?!
      小心被當成盤子喔!
      還有你的網址應該是在.url.com.tw的吧?看一下花錢架站還搬不了家?吧!

  7. 請問高登大哥..
    若使用 FLICKR ..是否有好方法管理圖檔呢!?
    若使用 FLICKR, 是否仍可以使用子域名的方法呢!?
    謝謝!!

  8. 高登大大,
    小妹又來請教了,目前依老大的教學在空間裡增加子網域,在CP的public根目錄下新增image資料夾,發生以下問題:
    1)我以"自網址"來插入圖片,在別台測試都會發生要輸入密碼,照片也看不到,我都有將image檔案權限更改為777,但還是一樣看不到照片及要輸入密碼,不知原因為何?
    2)老大所講的以子網域來當圖床,但我的後台空間和放圖片的image資料夾都是用同一HM主機,這樣跟我在wordpress後台直接上傳圖片到預設的wp-content/uploads有差別嗎?
    不懂~~~ 請教老大~

    • 你的子網域可能設定有誤,要用CP後台的Subdomain去新增,不是新增一筆A記錄,要檢查很簡單:將圖片網址用瀏覽器開,如果開得出來才是正確的。
      圗床另外設子網址的目的我在文章中已經有說明:怕圖片佔用頻寬所以將圖床放到別的主機,現在先把圖床的子網域考慮好,以後圖床酈要獨立的時候,WP的設定完全不用更改,但是這是針對圖片可能會佔用大量頻寬才會有這種考量,你的站應該不用那麼麻煩吧?

      • 謝謝老大的耐心回覆~ 剛架站所以都依前輩所教的去設,老大提醒了我
        我的網站應不用那麼麻煩。等以後如有大量發文章時再考慮圖床的
        設定。謝謝老大喔~

  9. 高登大您好:因為我是做套房出租的,常需要將套房照片上傳,我是租kkhost一年的虛擬主機,我怕圖片的數量太大,空間可能一下就被我灌爆了,我有試著要用dropbox或是中華電信提供的空間來存放我的照片,不知道我想的這方法可以嗎?

    • 我有文章介紹 Flickr 和 Picasa 你可以參考看看
      另外 Dropbox 有限流量,而且那不是給你當圖床用的好嗎?
      Hinet的東西我不予置評,原因請在我網站慢慢找
      如果你要我的建議那會是:先放自己的主機,把網站作起來再說吧
      很多人都在擔心一些不值得你擔心的事情,就以我的網站來說請你看一下我每天的人數,這樣的規模都還不用擔心爆流量的問題,那請問你一個新的網站是在擔心個什麼?

      • 您好:感謝高登大的回覆,因為我是做套房出租的,所以其實如果po一個文章的話,大概會需要15~20張圖左右,而我之前是有放過hinet的,沒很久就爆了@@…我有去看了您介紹的Flickr 和 Picasa,我應該會用Flickr,謝謝您的分享。
        ps:抱歉應該先爬文才來問Dropbox,是我太天真了@@

  10. 版主你好:

    我看了你著篇文章,也造著方法實際操作成功,但有幾個問題想請教你:

    如果以後我要搬家,網域用相同的,只是換主機商

    著樣子要改圖片網址時要怎麼設定?一樣輸入

    image.我的網域名稱.com 就可以嗎?

    如是免費圖床的呢?一樣只要輸入原本圖床的主網域就行嗎?

    • 我這個方法的重點在於用一個主網域跟一個子網域來作
      所以你要瞭解子網域是什麼東西,還有在主機後台是如何設定子網域(或是在另外一台主機設定子網域)才可以這樣玩

  11. QQ我就是您所說的不熟sql語法而出錯的><
    不過我有遵照您的意旨先備份sql資料庫XD
    但是不太懂怎麼還原耶?
    請教您,要用drop/empty/delete哪個指令刪除原有的資料庫呢?
    (因為我直接import結果出錯了)
    謝謝您!

  12. 請問高登
    使用SQL 替換網址 前台文章看是有成功的
    可是後台 文章編輯器 看還是 原本的
    這樣若要更新之前的文章 替換的效果就被蓋掉了
    和解?

    版本 WP 3.6

    • 如果您是用 WordPress 後台上傳的媒體那可能就不適用這個方法,因為 WordPress 還會記錄媒體的 Meta 額外資訊,也就是在媒體庫裡面的那些資料,那個是不能上傳到另外的子網域

  13. 請問高登

    這個以子網域當圖床的方法在寫文章的時候,似乎無法看到圖片預覽來確定要插入的圖片是哪一張
    要插入圖片到文章中需要URL (以前使用imgur之類的免費空間可以預覽並直接複製網址)
    所以想請問使用這方法後,在"找出想要的圖片的網址"的部分是如何操作會比較方便呢?

    或是否有相關的plugin可以直接看到public_html/image/下方的圖片呢

    謝謝

    • 你可以試試 upload to FTP 這個外掛,但還是跟放有內定的位置有一些差異,這些不方便應該是沒辦法克服的,因為檔案不在自己的主機上或是直接由程式管理是不能有太多權限的,不然你把圖片指向別人的主機又可以怎樣又怎樣的,你覺得這樣OK嗎?

  14. 然後在〔新增圖片〕的時候,選〔自網址〕,在網址列輸入你的圖片URL,像這篇文章的第一張圖片就是「https://gordon168.tw/image/wordpress/ftp/upload.png」,這個跟你從網路相簿引用圖片的方法是一樣的,只是網址是在你自己的主機裡面。
    -----> 請問這裡的新增圖片? 是在那裡可以按新增啊? 我遇到瓶頸了....因為我想要用在自己的主機中 放照片,寫文章的時候可以連結插入FTP中的照片。我FTP照片可以上傳,但是如何自訂連結? 就是插入文章照片 別人也可以看得到~~

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料