代碼不起作用的 24 多個原因以及如何修復它

已發表: 2013-08-21

我總是先測試代碼以確保它可以正常工作,但是有很多原因有時對我自己和其他使用它的人都不起作用,即使它沒有損壞。

以下是代碼不起作用的一些原因的列表:

  1. 忘記清除瀏覽器緩存:您可能對 CSS 進行了更改,並認為它們實際上不起作用,因為瀏覽器實際上顯示的是包含舊代碼的舊版本頁面。 清除瀏覽器緩存以確保。
  2. 未清除服務器緩存:一些託管主機提供商使用非常激進的服務器端緩存。 我知道 WPEngine 確實意味著 CSS 更改實際上可能需要幾天時間才能出現在您的網站上。 您可能會做出這些真正有效的更改,但認為它們不起作用,因為您無法在前端看到這些更改。 清除服務器緩存並在本地測試使用服務器端緩存或緩存插件的代碼。
  3. 將 CSS 代碼粘貼到函數文件中: CSS 代碼在函數文件中無法正常工作,該文件包含一個打開的 PHP 標記,這意味著它由安裝在服務器上的 PHP 處理器讀取。
  4. 將 PHP 粘貼到樣式表中:PHP 代碼在 .css 文件中不起作用,該文件由瀏覽器讀取,而不是服務器上安裝的 PHP 處理器。
  5. 將 PHP 或 CSS 粘貼到頁眉和頁腳腳本中:包含頁眉和頁腳腳本框的主題這樣做是為了輕鬆添加 Javascript 用於 Google Analytics 跟踪和實時聊天腳本,而不是 PHP 腳本。
  6. 從網頁複製並粘貼到主題編輯器中:非常常見的錯誤,可能導致撇號轉身,導致白屏死機,從而破壞您的網站。 始終使用 Notepad++ 等文本編輯器複製原始代碼並將其粘貼到文件末尾。
  7. 沒有復制所有代碼:複製不包含類或缺少右括號的 CSS 代碼塊將導致代碼無法正常工作。 因此,當唯一的問題是您在後面留下括號或分號時,您可能會認為代碼沒有問題。
  8. 沒有粘貼所有代碼:與上面相同,有時確實會發生。
  9. 當你的主題使用舊的鉤子時使用新的鉤子:對仍在新站點上運行舊 XHTML 標記的站點使用包含循環鉤子的代碼是行不通的。 該代碼將在舊網站上運行,因此不會損壞,但它不適用於 HTML 5 啟用子主題。
  10. 當你的主題使用新的鉤子時使用舊的鉤子:同上
  11. 使用不支持代碼中的類的舊瀏覽器:一些舊瀏覽器不支持某些 CSS 類,這意味著代碼不會執行其編寫的任務。 您可以安裝多個瀏覽器來測試代碼或使用免費的在線工具來實現跨瀏覽器的兼容性。
  12. 使用尚不支持代碼中的類的最新瀏覽器版本:一些新瀏覽器不支持某些 CSS 類,這意味著代碼可以在舊瀏覽器上運行,但您可能認為它不支持,因為您使用的是 beta版本或剛剛發布的最新版本。
  13. 複製開始的 PHP 標記並將其粘貼到您的函數文件中: PHP 片段通常包含一個開始的 PHP 標記,但是不應將其粘貼到已經包含該標記的函數文件中。 如果發生這種情況,您將收到一條錯誤消息並破壞您的網站,只需刪除標籤即可輕鬆修復。 這就是使用文本編輯器將代碼粘貼到實際文件中而不是使用 WordPress 編輯器的最佳實踐的原因。 如果您將代碼添加到實際文件中,您可以輕鬆地重新打開它并快速刪除問題,如果使用主題編輯器則不是這種情況,因為當您遇到編程錯誤時您將被鎖定在站點之外。
  14. 複製並粘貼兩種解決方案而不是選擇一個:許多帖子和論壇包含多個解決相同問題的代碼片段。 如果您粘貼 2 個執行相同操作的代碼片段,它可能會破壞您的網站,因此您可能會認為代碼已損壞,但事實並非如此。 一次只使用一個片段。
  15. 將函數代碼複製到模板文件中:有時您會發現編寫用於模板文件而不是子主題函數文件的 PHP 代碼。 模板代碼並不總是在函數文件中工作,因為它通常包含在 PHP 開始和結束標記中。 自定義函數通常並不意味著它們通常不能在 te,plate 文件中工作,具體取決於主題。 只需確保您確切知道要將代碼粘貼到哪個文件中,否則您可能會收到錯誤,認為代碼在執行時不起作用。
  16. 您安裝了一個覆蓋代碼的插件:一些插件覆蓋 PHP 代碼,這意味著帶有過濾器和鉤子的代碼可能無法正常工作。 Genesis Simple Edits 插件就是一個例子。 如果您安裝了這個插件,可以自定義發布信息和發布元數據,那麼添加 PHP 代碼來執行相同的操作(包括發布元數據或發布信息過濾器)將不起作用。 您可能認為代碼不起作用,而實際上它確實起作用,您需要做的就是解決問題並讓代碼起作用,即停用插件。
  17. 使用 PHP 代碼有條件地更改佈局此代碼不適用於使用 bbPress 的某些主題,這些主題也使用 Genesis bbPress 連接插件。 這個插件掛鉤到 Genesis 過濾器,這與 PHP 代碼有條件地更改佈局所做的事情相同,因此它不會在覆蓋代碼時工作。
  18. 在 HTML 5 子主題上使用 XHTML CSS 類- 示例:#content 不適用於使用 .entry-content 的 HTML 5 子主題。
  19. 在 XHTML 主題上使用 HTML 標記– .site-header 不適用於運行 XHTML 標記的站點,因此您需要使用 #header。
  20. 首頁模板代碼——首頁模板中的任何代碼僅在您使用默認閱讀設置時才有效。 如果您更改這些設置並選擇靜態頁面作為首頁,則首頁模板中的代碼將不起作用。
  21. 在媒體查詢之後添加 CSS - 最好在媒體查詢之前添加自定義 CSS,否則可能無法正常工作。
  22. 添加 CSS 以修改已設置樣式的類- 您在樣式表的末尾添加了 CSS 以更改默認已設置樣式的現有元素的樣式。 這方面的一個示例是,當您修改小部件區域以使用 Genesis 特色帖子小部件時,其默認樣式為使用特色頁面小部件。 您的 CSS 可能不同,但您使用的是不同的類。 您需要做的是修改默認 CSS,使其在特色頁面小部件的樣式上更長,並且只為特色帖子小部件設置樣式。
  23. 主頁模板代碼– home.php 模板文件中的任何代碼,只有在您使用默認閱讀設置時才能在首頁上使用。 如果您使用靜態頁面作為首頁,則代碼僅適用於您的帖子頁面(如博客頁面),前提是您尚未從下拉菜單中選擇博客頁面模板。 (僅適用於包含博客頁面模板的主題)。
  24. 錯誤修改的 CSS 導致其他 CSS 中斷– 一名成員安裝了一些代碼來創建自定義佈局,但它不起作用,因為用於修改內容寬度的 CSS 不起作用。 他們發現之前使用 !important 添加的其他 CSS 阻止了新 CSS 的工作。

如果您還激活了 Genesis Simple Edits 插件,則上面的代碼將不起作用,因為它會覆蓋帖子信息過濾器。

這就是我目前所能想到的,但我確信代碼不起作用(但確實如此)還有很多原因可以添加到這個列表中。

相關文章

  • 重新發布代碼之前要考慮的 5 個要點