【狂人論壇】

 找回密碼
 註冊
搜索

在 WordPress 發文貼圖時,自動省略「http:」或「https:」開頭....

5496

主題

1萬

金錢

183

積分

不來恩

積分
183
brian 發表於 2015-7-26 14:21 | 顯示全部樓層 |閱讀模式
在 WordPress 文章貼圖時自動省略 http://https:// 網址開頭..
而直接以「//」相對網址的形式來貼圖


當網站從 http:// 開頭的網址切換成 https:// 開頭的加密連線之後,原本在佈景主題、文章內容中所有被載入的內容如果有不是「https://」開頭的外部資源,則會被瀏覽器警告為不安全的混合內容。這些包含使用 img src="..." 嵌入的圖片與其他 JavaScript、.css 或 .js 檔、iframe... 等外部資源,如果可以使用 https 加密連線的就改成 https,如果不行的就直接拿掉,必須一一從佈景主題中修正(如果只是貼上一般超連結就可以不用管他,只需處理「被載入」頁面的外部資源即可)。


另外在文章內容的部份,如果嵌入的圖片最初是以「<img src="http://......">」的形式貼圖的話,則必須手動修改資料庫,搜尋/取代成 「<img src="https://......">」的形式,或者直接改成相對網址的方式:「<img src="//......">」。

使用相對網址的方式來載入圖檔或 .js 或 .css 等檔案有個好處,如果你當前網站是 http:// 一般連線方式的話,就會自動以 http:// 的方式開啟外部資源。如果你當前網站已經改成 https:// 開頭的加密連線的話,使用「//」開頭的相對網址時,則自動會以 https:// 的方式來開啟加密連線的外連資源(前提是該外部資源必須要有 ssl 版本的檔案可以開,不然開了就只是連不上、找不到檔案而已)。

如果你希望在寫文章時自動就以「<img src="//......">」相對網址的形式來貼圖的話,可以改一下 functions.php 檔案,讓上傳圖檔、送出貼圖網址到內文時,可以自動以「//」開頭來嵌入圖檔網址。

之所以要這樣修改,主要是你的網站如果同時提供 http 與 https 兩種版本讓網友瀏覽,若不希望其中一方看不到圖片的話,讓他有彈性一點會比較好。

修改佈景主題的「functions.php」檔案,加入以下控制碼:
  1. function image_to_relative($html, $id, $caption, $title, $align, $url, $size, $alt) {
  2.         $sp = strpos($html,"src=") + 5;
  3.         $ep = strpos($html,""",$sp);
  4.         
  5.         $imageurl = substr($html,$sp,$ep-$sp);
  6.         
  7.         $relativeurl = str_replace("http://","",$imageurl);
  8.         $sp = strpos($relativeurl,"/");
  9.         $relativeurl = substr($relativeurl,$sp);
  10.         
  11.         $html = str_replace($imageurl,$relativeurl,$html);
  12.         
  13.         return $html;
  14. }
  15. add_filter('image_send_to_editor', 'image_to_relative', 5, 8);
複製代碼
以上程式碼引用自:Convert links and images to being site root relative





A relative Image  URL without a scheme (WordPress)


5496

主題

1萬

金錢

183

積分

不來恩

積分
183
 樓主| brian 發表於 2015-7-26 14:39 | 顯示全部樓層
不過上面的修改方式好像沒考慮到 thumbnail 縮圖的部份...
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|聯絡站長|重灌狂人|狂人論壇

GMT+8, 2024-3-19 17:41

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回復 返回頂部 返回列表