最近在自己開發一款WordPress主題-wait主題,但是在開發過程中突然出現了了一個奇葩的問題,媒體庫圖片不顯示了!!總是顯示那個加載中的小圓圈,而且上傳圖片也總是失敗。折騰了兩三天以後,終於發現了問題所在,趕緊記錄下來。。。。
描述
最近在自己開發一款WordPress主題-wait主題,但是在開發過程中突然出現了了一個奇葩的問題,媒體庫圖片不顯示了!!總是顯示那個加載中的小圓圈,而且上傳圖片也總是失敗。具體如下圖所示:
而選擇列表模式則顯示正常:
嘗試
發現這個問題以後,主題開發的其他工作只能暫時停止了,專心解決這個問題。
先去網上搜索,結果發現結果都是千篇一律,說什麼文件夾權限問題啦,文件編碼問題啦,插件設置問題等等。
可是我這是本地測試系統, 沒有安裝任何插件,也不存在權限問題,編碼格式都是utf8無Bom格式。
倒是發現有幾個網友出了和我一樣的問題,但是下面沒有任何人給出解決方案。。。。。
網上搜索無果後,只能自己摸索解決了。
探索
首先懷疑自己的主題函數與wp自帶函數重名。於是打開upload.php,將其中的函數與自己寫的函數一一比對,發現沒有重名問題,故排除此選項。
然後檢查admin文件,沒有發現可疑情況。
在瀏覽器調試窗口中檢查css和js的加載調試情況,也沒有發現異常。
最後沒辦法了,打開代碼窗口,一行一行查看代碼,也沒有發現啥可懷疑的。
就這樣來來回回折騰了兩三天,直到今天下午,無意中,我發現了問題的根源~~~~
問題
今天下午再一次查看代碼的時候,突然發現了這麼一條語句:
問題就出在這條語句上!!!!
來看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文件中有這麼一句引用:
當時以爲是這條語句會在網頁正文裏,所以就寫上了,但是今天才發現,無論將它放到哪裏,它總是會出現在網頁第一行!!!WTF!!!
只好將其刪掉,將css代碼寫到了文件裏,問題纔算成功解決~~~~
總結
1、不要盲目相信網絡上的東西,自己動手纔是王道
2、調試bug,要從源代碼入手。
3、碰到問題要冷靜,千萬不要急躁~~
4、自己動手,豐衣足食~~~
前瞻
wait主題即將發佈,敬請期待~~~
轉載註明出處等英博客
轉載註明出處等英博客
轉載註明出處等英博客
重要的話說三遍~~