WordPress的發(fā)展越來越快。我們也已經(jīng)學(xué)會(huì)了怎樣撰寫日志,怎樣添加日志分類,甚至還可以為自己的WordPress網(wǎng)站加上幾個(gè)插件。這時(shí)問題可能就出現(xiàn)了,在WordPress主題中稍作修改后返回查看站點(diǎn),什么變化都沒有,修改居然沒有生效。這究竟是怎么回事?想尖叫、想拍打電腦來泄憤,可是這有什么用? 冷靜冷靜。大多數(shù)錯(cuò)誤都是由一時(shí)疏忽造成的。即使時(shí)間緊張,也要努力做到從容冷靜,不要匆忙之下犯錯(cuò)。這是有好處的。如果還是因?yàn)樾薷臒o效 而郁悶沮喪,試著站起來出去走兩步,排遣這些消極情緒。有時(shí)只需要轉(zhuǎn)移一下注意力,再回來時(shí)我們就會(huì)發(fā)現(xiàn)那個(gè)被遺漏的分號(hào),或者一個(gè)多余的引號(hào),甚至可能 會(huì)意識(shí)到實(shí)際的解決方案要比我們?cè)认氲暮唵蔚枚唷? 修改無效可能是WordPress問題,也可能是數(shù)據(jù)庫問題,甚至可能是服務(wù)器問題或我們自己的設(shè)計(jì)問題,但大多數(shù)情況下,原因根本不在這些問題上,瀏覽器才是罪魁禍?zhǔn)住? 無論問題出在什么地方,修改無效時(shí)都可以借鑒下面的這些解決方法。
瀏覽器緩存我們都知道,計(jì)算機(jī)的主要作用就是要讓我們的生活更簡單、更方便,它應(yīng)該為我們節(jié)省更多時(shí)間和精力,提高我們的生活品質(zhì)。好吧,也許在計(jì)算機(jī)使用上,我們還沒能夠達(dá)到這種程度,但至少互聯(lián)網(wǎng)瀏覽器在努力讓我們的生活變得更簡單些。 我們第一次訪問某個(gè)網(wǎng)站時(shí),可能需要多一點(diǎn)的加載時(shí)間。接下來訪問該網(wǎng)站的其它網(wǎng)頁時(shí),需要的加載時(shí)間就短了很多。這是因?yàn)?,出于?shí)用性方面的考慮,瀏覽器將網(wǎng)站信息存儲(chǔ)在我們的電腦上,當(dāng)我們?cè)俅卧L問網(wǎng)站時(shí),瀏覽器從我們的電腦上而從不是實(shí)際的網(wǎng)頁上加載。這個(gè)過程就叫“緩存”,緩存的目的是加速互聯(lián)網(wǎng)的瀏覽速度。 大家應(yīng)該很熟悉緩存這個(gè)術(shù)語了。過去海盜和竊賊會(huì)把贓物囤積在洞穴、地道等“安全”的地方。而在瀏覽器中,被“囤積”/緩存的則是一些網(wǎng)頁文件和信息,刷新頁面或再次查看頁面時(shí),瀏覽器會(huì)再次用到這些信息。 如果瀏覽器認(rèn)為我們對(duì)網(wǎng)站所做修改不明顯或不夠重要,就會(huì)重新加載之前的相同頁面,而不是修改后的頁面。可以通過清除瀏覽器緩存來使修改生效。 清除瀏覽器緩存 正常情況下,要看到網(wǎng)頁上的更改,可以點(diǎn)擊瀏覽器工具欄上的刷新按鈕或直接按下鍵盤上的F5鍵。但大多數(shù)情況下這樣重新加載的頁面都沒有清除瀏覽器的緩存。下面介紹一些除去瀏覽器緩存的小技巧,幫助大家看到頁面重新加載后的修改效果。 Microsoft Internet Explorer瀏覽器
</STRONG>Mozilla Firefox瀏覽器
Netscape瀏覽器 在菜單欄中選擇編輯>首選項(xiàng)>高級(jí)。選擇“緩存”并同時(shí)選中“清除內(nèi)存緩存”和“清除硬盤緩存”。 Mozilla 1.x以及更高版本 在菜單欄中選擇編輯>首選項(xiàng)>高級(jí)。選擇“緩存”之后“清除緩存”。 Opera 在菜單欄中選擇編輯>首選項(xiàng)>歷史記錄與緩存,選擇“緩存” Safari 在瀏覽器菜單中選擇Safari>重設(shè)Safari,點(diǎn)擊重設(shè)確認(rèn),或者選擇Safari>清空緩存。 其它 每個(gè)瀏覽器都有阻止/最小化網(wǎng)頁緩存的方式。阻止緩存會(huì)減慢網(wǎng)頁的瀏覽速度,而且即使阻止緩存,有些緩存還是會(huì)生成,但無論怎樣,阻止緩存都是有一定優(yōu)勢的??梢渣c(diǎn)擊瀏覽器的幫助文件,了解關(guān)閉緩存功能的具體情況。 WordPress緩存插件有些WordPress插件也可以為博客增加緩存功能。由于WordPress能從緩存結(jié)果中獲取博客頁面,而不是重新生成頁面,這樣就加快了博客的加載速度。 每當(dāng)有新日志、頁面或評(píng)論發(fā)表時(shí),好的緩存插件會(huì)清空緩存。盡管如此,如果在別的地方做了改動(dòng)(例如修改了主題),緩存可能不會(huì)被清空,重新加載時(shí)出現(xiàn)的仍然是原先的頁面。這種情況下可以打開插件的使用說明,查看怎樣才能清除緩存。 注意:WordPress沒有將緩存作為默認(rèn)功能,只有我們自己安裝緩存插件后才能對(duì)緩存信息進(jìn)行處理。 檢查源代碼即使是最優(yōu)秀的網(wǎng)頁設(shè)計(jì)人員、開發(fā)人員和程序開發(fā)人員都有可能出錯(cuò)。這些錯(cuò)誤通常是些細(xì)節(jié)性問題,比如忽略了某個(gè)分號(hào),拼寫錯(cuò)了某個(gè)標(biāo)簽,沒有注意到某個(gè)引起混亂的小問題等。下面我們來看看一些經(jīng)常出錯(cuò)但又容易被忽略的細(xì)節(jié)問題。 檢查文件地址 我們“修正”的文件的文件名和文件夾是否與當(dāng)前正在瀏覽的文件名一致?首先請(qǐng)看下面這兩個(gè)URL地址。
這樣我們基本能夠看出兩個(gè)URL的不同之處,但如果在地址欄或文本編輯器中,可能就會(huì)忘記規(guī)定文件夾位置的單詞test了。 使用不同樣式表文件名時(shí),還要特別注意style1.css和stylel.css。前者是style加上數(shù)字1,后者則是style加上 小寫字母l。在名稱相似的文件中進(jìn)行操作時(shí),最好用容易區(qū)分的名稱為文件命名,以便區(qū)分,如style-red.css與style-800.css。 檢查模板 編輯模板文件時(shí),你能確定當(dāng)前查看的頁面是由自己編輯的模板生成的嗎?很多模板上的內(nèi)容都非常相似;例如,日志頁頭可能會(huì)出現(xiàn)在單篇日志頁面上,也可能出現(xiàn)在索引頁面、搜索頁面、存檔頁面等模板上。 如果無法確定自己需要使用的模板文件,請(qǐng)參考模板層級(jí)。 檢查上傳文件 修改某個(gè)文件后,文件會(huì)保留在計(jì)算機(jī)的硬盤中,我們要將文件上傳到虛擬主機(jī)服務(wù)器后才能在網(wǎng)站上看到自己所做修改。這時(shí)需要仔細(xì)檢查,我上傳了文件嗎?文件的上傳位置對(duì)嗎?上傳成功了嗎?重寫原有文件時(shí),有時(shí)可能是不完全重寫,所以可以考慮在虛擬主機(jī)服務(wù)器上刪除原有文件,然后將重寫的新文件上傳到服務(wù)器上,確保服務(wù)器上具有內(nèi)容準(zhǔn)確的完整文件。 檢查其他內(nèi)容 如果仍然看不到自己做的修改,而修改的文件又在正確的位置上,文件名也沒有問題,如果確定這就是應(yīng)該修改的文件,請(qǐng)參考以下操作:
除錯(cuò)程序開發(fā)人員用debug這個(gè)術(shù)語來表示徹底檢查代碼并找出出錯(cuò)原因的過程。下面我們來逐個(gè)分析如何除去CSS、HTML、PHP代碼中的錯(cuò)誤,解決修改無效問題。 為某個(gè)問題除錯(cuò)時(shí),一次只改動(dòng)一個(gè)處內(nèi)容。例如,如果不確定問題出在第37行或第40行,就不要同時(shí)改 動(dòng)兩行內(nèi)容??梢韵刃薷牡?7行內(nèi)容,然后查看問題是否被改正。如果沒有,撤銷對(duì)37行的改動(dòng),修改第40行內(nèi)容。即使前一次的改動(dòng)沒有立即產(chǎn)生新問題, 再次進(jìn)行改動(dòng)前也應(yīng)該撤銷前一次的改動(dòng),這是個(gè)非常重要的操作。 每次改動(dòng)文件都有可能會(huì)引發(fā)更多錯(cuò)誤。這些改動(dòng)可能一個(gè)連著一個(gè),牽一發(fā)而動(dòng)全身,最后使除錯(cuò)變成一個(gè)繁瑣復(fù)雜的過程。因此最好一次性只修改一處內(nèi)容。 CSS除錯(cuò) 為樣式表或CSS除錯(cuò)是一項(xiàng)很有挑戰(zhàn)性的任務(wù)。我們不僅要從HTML中找到引發(fā)問題的具體位置,還要返回style.css文件,查看該具體位置在style.css文件中的樣式。查找CSS樣式中介紹了一些常見出錯(cuò)區(qū)域。 找到引發(fā)問題的樣式表后,需要進(jìn)一步了解該樣式表。解決CSS問題時(shí)可以參考下面的速查表:
更多CSS疑難解答信息請(qǐng)見:
HTML除錯(cuò) HTML與CSS一樣,也會(huì)因?yàn)橐恍╊愃破磳戝e(cuò)誤、未閉合的標(biāo)簽、被遺漏的<箭頭等細(xì)微錯(cuò)誤而使整個(gè)網(wǎng)站顯示異常。 強(qiáng)烈推薦大祭司使用網(wǎng)絡(luò)上的免費(fèi)HTML驗(yàn)證程序來驗(yàn)證HTML代碼。同時(shí)<[ttp://www.mozilla.com/firefox/ Mozilla Firefox]也有一款名為Web Developers DOM Inspector、功能強(qiáng)大的免費(fèi)插件(安裝Firefox時(shí)基本會(huì)附帶該插件),幫助用戶輕松迅速地驗(yàn)證HTML代碼并修復(fù)網(wǎng)站問題。 下面是為HTML/XHTML除錯(cuò)的一些小技巧:
更多HTML除錯(cuò)信息請(qǐng)見: PHP除錯(cuò) 仔細(xì)閱讀web服務(wù)器的錯(cuò)誤日志(error log)。PHP通常會(huì)將錯(cuò)誤信息記錄在錯(cuò)誤日志中。錯(cuò)誤日志信息相對(duì)隱秘,但它們通常會(huì)給出錯(cuò)誤代碼所在行數(shù)。 但PHP認(rèn)為的錯(cuò)誤代碼,未必就是問題癥結(jié)所在。例如,一個(gè)未閉合的大括號(hào){也可能會(huì)被腳本報(bào)告成錯(cuò)誤問題。PHP錯(cuò)誤信息速查表及其起因請(qǐng)見Common PHP Errors。 要在PHP中除錯(cuò),可依照以下步驟: 確定當(dāng)前位置 die()命令可能是一個(gè)最有效的除錯(cuò)工具,它可以使程序立即停止執(zhí)行,并選擇性地按照我們的意愿顯示信息。 嘗試解決問題時(shí),可將die()語句散置在腳本的各個(gè)關(guān)鍵版塊,使每個(gè)版塊都具備一個(gè)有價(jià)值的信息: die('Stage One Complete'); die('Disinfribullation Complete'); die('Finished Collating'); 加載程序,查看是否有信息被顯示。如果看到的是第一個(gè)信息,說明到這里程序一直都運(yùn)行正常。刪除(或標(biāo)注)第一個(gè)die()命令,重新運(yùn)行程序,查看是否有信息顯示。重復(fù)以上步驟,直到確定產(chǎn)生問題的版塊。 盡管如此,這個(gè)方法也有它的局限性。首先,如果瀏覽器沒有顯示任何信息,那么應(yīng)該是腳本中某個(gè)地方出現(xiàn)了重大的語句錯(cuò)誤。這時(shí)應(yīng)該盡可能地檢查web服務(wù)器的錯(cuò)誤日志。如果腳本已經(jīng)執(zhí)行完畢——但不是正確執(zhí)行——但沒有顯示任何die()信息,接下來還要繼續(xù)查找問題所在。 查找問題 如果設(shè)置與預(yù)想的不一樣,或者希望出現(xiàn)某個(gè)結(jié)果卻沒有出現(xiàn),這時(shí)可能需要檢查腳本不同位置上不同變量的值。只要將變量傳遞給一個(gè)die()命令,就可以看到變量的值: die($user_level); 這會(huì)給出變量$user_level的值,變量值表明當(dāng)前用戶的用戶級(jí)別。 在編程中,對(duì)布爾型以及字符串型("["http://www./manual/en/language.types.php#language.types.intro scalar]")變量來說這是一種好方法;但這種方法不適用于數(shù)組和對(duì)象。要查看數(shù)組和對(duì)象的值,可以使用print_r命令: print_r($post); 該命令會(huì)以人類可讀的格式顯示$post數(shù)組的值: Array ( [0] => stdClass Object ( [ID] => 1 [post_author] => 1 [post_date] => 2005-02-16 09:16:46 [post_date_gmt] => 2005-02-16 14:16:46 [post_content] => Welcome to WordPress. This is your first post. Edit or delete it, then start blogging! [post_title] => Hello world! [post_category] => 0 [post_excerpt] => [post_status] => publish [comment_status] => open [ping_status] => open [post_password] => [post_name] => hello-world [to_ping] => [pinged] => [post_modified] => 2005-04-15 08:45:42 [post_modified_gmt] => 2005-04-15 13:45:42 [post_content_filtered] => [post_parent] => 0 [guid] => /?p=1 [menu_order] => 0 ) ) 通過這種格式可以看出數(shù)組中的關(guān)鍵字對(duì)/值對(duì)。 使用print_r()并不會(huì)中斷程序執(zhí)行,因此之后還需要立即調(diào)用die()命令。 在腳本執(zhí)行過程中,用print_r()和die()來查看變量值。var_dump()函數(shù)也具有類似功能。選擇對(duì)自己更有幫助性的方法來查看變量值。 如果以上方法都沒能找出修改無效的原因 如果以上方法都沒能找出修改無效的原因,也不用擔(dān)心。要使網(wǎng)站恢復(fù)正常,可以查看下面這些資料,尋找更多幫助: |
|