WordPress媒體庫圖片不顯示或顯示錯誤的原因及解決方案

最近在自己開發一款WordPress主題-wait主題,但是在開發過程中突然出現了了一個奇葩的問題,媒體庫圖片不顯示了!!總是顯示那個加載中的小圓圈,而且上傳圖片也總是失敗。折騰了兩三天以後,終於發現了問題所在,趕緊記錄下來。。。。

描述

最近在自己開發一款WordPress主題-wait主題,但是在開發過程中突然出現了了一個奇葩的問題,媒體庫圖片不顯示了!!總是顯示那個加載中的小圓圈,而且上傳圖片也總是失敗。具體如下圖所示:

image

而選擇列表模式則顯示正常:

image

嘗試

發現這個問題以後,主題開發的其他工作只能暫時停止了,專心解決這個問題。

先去網上搜索,結果發現結果都是千篇一律,說什麼文件夾權限問題啦,文件編碼問題啦,插件設置問題等等。

可是我這是本地測試系統, 沒有安裝任何插件,也不存在權限問題,編碼格式都是utf8無Bom格式。

倒是發現有幾個網友出了和我一樣的問題,但是下面沒有任何人給出解決方案。。。。。

網上搜索無果後,只能自己摸索解決了。

探索

首先懷疑自己的主題函數與wp自帶函數重名。於是打開upload.php,將其中的函數與自己寫的函數一一比對,發現沒有重名問題,故排除此選項。

然後檢查admin文件,沒有發現可疑情況。

在瀏覽器調試窗口中檢查css和js的加載調試情況,也沒有發現異常。

image

最後沒辦法了,打開代碼窗口,一行一行查看代碼,也沒有發現啥可懷疑的。

就這樣來來回回折騰了兩三天,直到今天下午,無意中,我發現了問題的根源~~~~

問題

今天下午再一次查看代碼的時候,突然發現了這麼一條語句:

image

問題就出在這條語句上!!!!

來看w3school上對HTML聲明的解釋:

<!DOCTYPE> 聲明必須是 HTML 文檔的第一行,位於 <html> 標籤之前。

<!DOCTYPE> 聲明不是 HTML 標籤;它是指示 web 瀏覽器關於頁面使用哪個 HTML 版本進行編寫的指令。

在 HTML 4.01 中,<!DOCTYPE> 聲明引用 DTD,因爲 HTML 4.01 基於 SGML。DTD 規定了標記語言的規則,這樣瀏覽器才能正確地呈現內容。

HTML5 不基於 SGML,所以不需要引用 DTD。

提示:請始終向 HTML 文檔添加 <!DOCTYPE> 聲明,這樣瀏覽器才能獲知文檔類型。

<!DOCTYPE> 聲明必須是 HTML 文檔的第一行,位於 <html> 標籤之前!<!DOCTYPE> 聲明必須是 HTML 文檔的第一行,位於 <html> 標籤之前!<!DOCTYPE> 聲明必須是 HTML 文檔的第一行,位於 <html> 標籤之前!

重要的話說三遍~~

所以,只要上面那條討厭的語句去掉,就可以解決這個問題了~~

解決

查找源代碼,發現是我的admin文件中有這麼一句引用:

image

當時以爲是這條語句會在網頁正文裏,所以就寫上了,但是今天才發現,無論將它放到哪裏,它總是會出現在網頁第一行!!!WTF!!!

只好將其刪掉,將css代碼寫到了文件裏,問題纔算成功解決~~~~

總結

1、不要盲目相信網絡上的東西,自己動手纔是王道

2、調試bug,要從源代碼入手。

3、碰到問題要冷靜,千萬不要急躁~~

4、自己動手,豐衣足食~~~

前瞻

wait主題即將發佈,敬請期待~~~

轉載註明出處等英博客

轉載註明出處等英博客

轉載註明出處等英博客

重要的話說三遍~~


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章