最佳實踐:在添加至 WordPress 主題時檢查函數是否存在
最近,有一位用戶詢問我們如何在將依賴 PHP 函數的新代碼添加到 WordPress 網站之前檢查該函數是否存在。WordPress 最好的部分就是它的靈活性,包括能夠向網站添加自定義函數。然而,有時您的自定義代碼可能無法工作,因為它所引用的函數可能不存在。在本文中,我們將向您展示如何在將函數添加到 WordPress 主題之前輕鬆檢查函數是否存在。
為什麼要在自定義代碼中添加「如果函數存在」?
WordPress 主要由 PHP 編程語言編寫。PHP 是一種在 WordPress 託管供應商服務器上運行的服務器端編程語言。由於 PHP 代碼在訪問者的瀏覽器加載頁面之前必須完成運行,因此存在某些限制。其中一個限制是,如果出現問題,可能會阻止整個頁面加載。在 WordPress 中,如果缺少的函數阻止其餘代碼運行,那麼它將停止並顯示一個嚴重錯誤或致命錯誤信息。
那麼,什麼會導致函數突然停止工作或丟失?這是一個比你想象更常見的 WordPress 錯誤。例如,假設您的某個 WordPress 插件附帶了一個您已添加到主題的頁眉或頁腳區域的函數。禁用該插件會使函數消失,並在您的 WordPress 網站上引發致命錯誤。
在 WordPress 中檢查函數是否存在
幸運的是,PHP 編程語言有一個內置的方法,可以在執行函數之前輕鬆檢查函數的存在性。假設您有一個顯示當前時間及時區信息的 WordPress 函數。以下是您可以試用的代碼片段。
您可以直接將其添加到主題的 functions.php
文件,但在本教程中,我們將使用 WPCode 代碼片段插件,因為這是最安全和最簡單的方式來在 WordPress 中添加自定義代碼。首先,您需要安裝並激活 WPCode 免費插件。如需幫助,請參閱我們的分步初學者指南:如何安裝 WordPress 插件。激活後,您需要轉到 WordPress 儀表板上的 Code Snippets » + Add Snippet
。一旦到達,將鼠標懸停在「Add Your Custom Code (New Snippet)
」選項上,然後點擊出現的「Use snippet
」按鈕。
這將打開一個新頁面,您可以在此添加自定義片段。輸入一個標題,例如「顯示當前時間及時區」,然後將以下代碼片段粘貼到 Code Preview 窗格中。
//顯示當前時間及時區 function wpb_show_timezone() { $better_time = current_time('F j, Y g:i a e'); echo "The current time is " . $better_time ."
"; }
之後,您需要從 Code Type 下拉菜單中選擇「PHP Snippet」以確保代碼正確運行。最後,您應該將激活切換開關切換到「開」位置,並點擊「Save Snippet」按鈕來保存您的新代碼片段。
要調用此函數,您需要在希望顯示當前時間的任何 WordPress 主題位置添加以下代碼。
這是我們測試網站上的顯示效果。
現在,如果執行該函數的代碼消失會發生什麼?調用該函數會像這樣中斷您的網站。
讓我們額外添加一個檢查,以確保此代碼僅在函數存在時運行。同樣,您需要將該代碼直接添加到主題的 functions.php
文件中或使用代碼片段插件(例如 WPCode,推薦)。
在此代碼中,我們使用了 function_exists()
函數。此函數檢查函數是否存在並返回 True 或 False。然後,我們添加了一個 if-else
條件來根據函數的可用性採取適當的行動。現在,當函數不再可用時,代碼將簡單地跳過它,而 WordPress 將能夠正常加載其餘網站。
我們希望本文能幫助您了解如何在 WordPress 中檢查函數是否存在。您還可能想查看我們完整的 WordPress 疑難解答指南 或我們專家推薦的最佳拖放式 WordPress 頁面構建器。
如果您喜歡這篇文章,請訂閱我們的 YouTube 頻道 以獲取更多 WordPress 視頻教程。您也可以在 Twitter 和 Facebook 上找到我們。