WordPress Functions.php 文件解釋:基本指南
已發表: 2020-11-18WordPress functions.php 文件是WordPress 最重要的操作文件之一。 每個 WordPress 網站至少存在兩個 functions.php 文件:WordPress 核心中的函數文件和 WordPress 主題中的附加函數文件。 此外,子主題還將有一個 functions.php 文件。
在本指南中,我們將介紹functions.php 文件是什麼、WordPressfunctions.php 文件所在的位置、如何編輯它等等。 我們還將提供有關 WordPress 功能的入門。 讓我們潛入。
如果您正在閱讀本文,很可能您已經安裝並運行了基本的 WordPress,或者已經擁有一個 WordPress 網站。 一切似乎都運行良好,然後您想做的事情似乎應該是單擊按鈕。 然後你在網上找了一個教程,結果你需要直接編輯WordPress的functions文件,或者functions.php文件。
或者,您可能正在構建您的第一個 WordPress 主題,並且對如何編輯函數文件以及 WordPress 主題開發的最佳實踐有疑問。 在本文的最後,您應該更好地了解 WordPress functions.php 文件的工作原理以及如何最好地利用它。
什麼是 WordPress 中的 Functions.php 文件?
WordPress functions.php 文件是一個強大的操作文件,其中包含使 WordPress 網站正常運行的重要 PHP 函數。WordPress 中的函數文件有兩個主要位置:
- 位於您網站主目錄中的functions.php文件與WordPress核心文件一起打包
- 位於 WordPress 主題和/或 WordPress 子主題中的functions.php 文件。 您安裝的每個 WordPress 主題在 WordPress 安裝的根目錄中都有自己的名為 functions.php 的文件。
與 WordPress 插件的工作方式非常相似,functions.php 文件的存在只是為了允許用戶輸入自定義 PHP 代碼以在頁面上執行。 這可以用於無數的事情,從基本的附加功能(如服務器端計算)到更複雜的項目(如用 PHP 編寫的供用戶利用的完整程序)。

如果您喜歡嘗試各種主題,請記住您需要手動遷移您所做的任何functions.php 更改。 此外,如果沒有積極維護,某些主題可能不支持較新版本的 PHP,從而使您的一些舊功能無用。
這就是為什麼即使在您決定更改主題之後,正式執行 QA 或簡單地測試您網站上的所有內容也很重要。 不要把 WordPress 的消息說你的主題轉換成功意味著你的功能都轉移了。 這必須手動驗證。
WordPress 函數文件位於何處?
每個主題都有自己的functions.php 文件,它可以是福也可以是禍,這取決於您喜歡轉換主題的頻率和站點的功能。
然而,還有一個我們還沒有討論過的第二個“總體”函數文件! 讓我們來看看每個文件的位置以及這兩個文件之間的確切區別。
WordPress 核心 Functions.php 文件
顧名思義,WordPress 核心 funtions.php 文件是“head honcho”函數文件。 此函數文件與提供 WordPress 網站基礎代碼的 WordPress 核心軟件捆綁在一起。
在 WordPress 網站的根目錄中,您會在wp-includes
文件夾或目錄中找到此函數文件。 進入wp-includes
文件夾後,您將找到名為functions.php
的文件。 檢查但不要更改此文件的內容。 稍後,您應該注意到其結構與主題的函數文件的結構略有不同。

為什麼? 永遠不要編輯 WordPress 核心文件有幾個很好的理由:
- 每當發布新版本的 WordPress 時,更新都會覆蓋您對 WordPress 核心文件所做的自定義或更改。 出於安全原因,運行最新版本的 WordPress 始終是一個好主意,因此您不希望文件自定義阻止您運行最新版本的 WordPress。
- 錯誤位置的一個空格或額外的分號可能會完全破壞您的 WordPress 網站。 除非您對高級 WordPress 開發有透徹的了解,否則 WordPress 核心文件應該保持不變。
我的 WordPress 主題中的函數文件在哪裡?
現在,讓我們看看您的主題特定的functions.php
文件。 與核心functions.php
文件不同,該文件是由您(開發人員/網站管理員)編輯的。 這些文件的結構和訪問方式使得錯誤通常不會破壞站點,並且比核心級文件中的錯誤更容易調試。
為此,您需要訪問包含 WordPress 主題的wp-content
文件夾。 選擇您對添加功能最感興趣的任何主題的主文件夾。

在主題的根文件夾中,您應該會看到一個functions.php
文件。 打開這個文件,但不要完全改變內容。 看看這個文件,注意它的內容比核心函數文件少。
WordPress Functions.php 文件示例
為了讓您最好地了解一個合適的 WordPress functions.php 文件是什麼樣的,我們提供了這個“極簡”模板。 從本質上講,這具有 WordPress 運行所需的最低限度的代碼。 但是,您不會看到它做太多事情,因為功能尚未填充!
WordPress 函數文件具有“強制”函數,本文稍後將對此進行討論。 不用多說,這是我們的小functions.php
文件(基於主題)。 這改編自官方的 WordPress 主題功能示例,為了清楚起見,刪除了一些次要項目:
如果 ( !isset( $content_width ) )
$content_width = 1000; /* 默認值類型以像素為單位 */
如果(!function_exists('myfirsttheme_setup')):
/**
* 此函數需要將文件中的所有內容註冊到此
* 主題的functions.php。
*/
函數 myfirsttheme_setup() {
/**
* 在您的主題/站點中添加對圖像的支持
*/
add_theme_support('後縮略圖');
/**
* 啟用對所有核心 WP 內容的支持
*/
add_theme_support('post-formats', array ('aside', 'gallery', 'quote', 'image', 'video'));
}
萬一;
add_action('after_setup_theme', 'myfirsttheme_setup');
你有它! 請記住,大多數主題實際上都會附帶一個更完整的函數文件,歡迎您向其中添加更多代碼。 我們建議在此文件中進行開發時始終參考 WordPress 開發人員手冊。
WordPress Functions.php 文件安全
在您修改生產服務器上的任何這些文件之前,請確保您使用的是像 iThemes Security Pro 這樣不錯的 WordPress 安全插件,以確保您的數據安全。
像 iThemes Security Pro 這樣的插件可以為您的網站添加文件更改檢測。 iThemes Security Pro 中的文件更改檢測功能將掃描您網站的文件並在您的網站發生更改時提醒您,包括:
- 添加文件– 間諜軟件形式的惡意軟件可能會添加惡意文件,記錄客戶輸入信用卡信息時的按鍵操作。
- 刪除文件- 某些惡意軟件會刪除合法文件並將其替換為同名惡意文件。
- 修改文件- 惡意軟件將嘗試通過將其隱藏在它修改的現有文件中來隱藏其惡意代碼。
如何訪問 WordPress 中的 Functions.php 文件?
要訪問您的函數文件,您需要一些基本信息來執行此過程:
- 您的 sFTP 憑證(只有您的主機可以提供這些憑證,並且可能會在初始電子郵件中發送)
- 您選擇的 sFTP 客戶端
- 您要訪問的文件的位置
一旦您可以訪問 sFTP 客戶端並使用您的憑據登錄到您的服務器,您就可以瀏覽、查看和編輯 WordPress 站點的文件(前提是您擁有正確的用戶權限)。
參考我們上面關於“核心”和基於主題的函數文件的討論。
WordPress 主題功能說明
因此,既然您已經體驗了使用 WordPress 主題功能可以完成的工作,那麼您將對其中一些功能的工作方式感興趣。
雖然您應該訪問官方 WordPress 開髮指南以查看您可以使用的功能的完整和最新列表,但這裡有一個方便的有用主題功能列表以及每個功能的功能。

themename_setup()
– 在此函數中,只需將“themename”替換為您的主題名稱。 這包含設置主題的代碼。
register_nav_menus()
– 在這個函數中,我們簡單地設置自定義導航菜單。 幾乎每個實際(非理論)主題都利用了這一點。 否則,每個 WordPress 網站的菜單都會看起來完全一樣!
load_theme_textdomain()
– 這是允許本地化的函數。 WordPress 網站本地 SEO 的靈丹妙藥,在全國或全球範圍內都有廣泛的影響,這允許對本地區域和地區進行語言和 SEO 優化。
add_theme_support()
– 可能是最簡單的函數,這個函數只是告訴你的主題加載支持各種類型媒體的模塊。 這些都是內置的,所以根本不麻煩。 許多不同的東西,從 RSS 提要到視頻支持,都可以使用這個功能來實現。
你有你的主要 WordPress主題功能! 但是,我們遠未完成檢查可以在 WordPress 中使用的功能。 接下來,我們將看看我們可以利用的來自 WordPress核心的主要 WordPress 功能,正如我們之前所討論的。
主要 WordPress 功能的前五名列表
繼續,以下是您至少應該了解的一些主要 WordPress 核心功能; 然而,即使是大多數 WordPress 開發者在使用每一個之前都需要參考官方的 WordPress Theme Handbook,主要是由於每個函數的參數的複雜性。
在我們開始之前,請隨時在 WordPress 代碼參考中查看所有可供您使用的公共功能。
-
activate_plugins()
– 此函數搭載activate_plugin()
函數。 顧名思義,它是激活任何已安裝插件的快捷方式。 -
add_menu_page()
– 此功能使您可以非常輕鬆地將頁面添加到您的主題或站點的主菜單。 許多新手用戶嘗試使用原始 HTML 和 CSS 來做到這一點。 不幸的是,這種方法可能會弄亂整個主題; 最好利用像這樣專門為此目的而製作的功能,而不是嘗試自己“繞過它”。 -
bloginfo()
– PHP 開發人員可能會注意到,這看起來與 PHP 本身中稱為“phpinfo()”的必備函數非常相似。 這是為了模仿該功能,提供打印在頁面上的關鍵信息,以供開發使用,有關您的 WordPress 版本、服務器類型等。 如果您需要快速獲取某些特定信息,這非常有用。 -
current_user_can()
– 這個函數是一個“布爾值”,這意味著它將返回一個“真”值或一個“假”值。 這對於調試非常有用,可以調用它來查看您是否可以使用特定功能。 使用相關函數作為參數,您可以檢查您是否具有訪問任何特定功能的 WordPress 權限。 如果你不這樣做,那麼你可以在繼續之前抓住它並加快你的開發過程。 -
delete_plugins()
– 這個函數的功能正如它的名字所暗示的那樣:你輸入任何插件的註冊名稱,運行這個函數將刪除插件及其目錄。 再次請注意,此操作是永久性的,無法撤消。 在繼續執行此功能之前,請確保您擁有正確的名稱、您已備份您的站點等。
強制性 WordPress 主題功能
正如我們承諾的那樣,我們正在回過頭來看看那些“強制性”的 WordPress 主題功能。 這些是每個WordPress 主題必須具備的功能才能正常運行。 請注意,就像大多數形式的編程一樣,您可以簡單地創建一個文件,其中這些功能被取消,這仍然被認為是有效的。
這是許多博客使用的一種策略,目的是使過程看起來比實際要快得多,並讓他們更快地了解他們所謂的“WordPress 基礎知識”。 但是,請記住,跳過這些必需的或“強制”的功能不會給您自己或您的網站帶來任何好處。 您只是確保某些依賴於這些功能的功能無法按預期工作。 最好在第一次就正確地製作您的網站,而不是需要不斷地返回並編輯一些東西來保持所有內容幾乎沒有在一起!
只需查看 WordPress 主題功能初始設置示例文件,即可查看位於
編輯 Functions.php 文件
所以,既然我們已經了解了 WordPress 函數文件的基礎知識,讓我們來看看如何編輯這個文件。 那裡有各種“最佳實踐”,但最好的方法很簡單。
首先,您之前需要使用相同的 SFTP 憑據通過相同的 SFTP 客戶端。 接下來,您需要找到 PHP 文件並將其下載到本地驅動器。 在本地計算機上使用編輯器(例如開源 Notepad++),首先在本地進行編輯。
理想情況下,您應該在本地安裝一些東西,以便您測試此文件。 但是,如果您不這樣做,請確保備份原始文件並準備好恢復,以防您的修改沒有達到您預期的效果。 然後,替換服務器上的該文件,並觀察它運行!
作為一個很有可能成為經驗豐富的 WordPress 開發人員的人,您應該牢記 WordPress 團隊本身推薦的最佳實踐。 如果您要添加本質上重要且希望能夠重用的功能(類似於面向對象語言中的“對象”,供程序員使用),最好使用此 PHP 創建一個完整的插件您可以在每個站點上輕鬆安裝和卸載。 雖然這聽起來更複雜,但實際上多年來它會為您節省時間。
如何將代碼添加到 Functions.php?
如果您只是指修改此文件,請查看我們上面的回答。 然而,許多用戶問這個問題是因為他們有興趣將他們自己的附加功能添加到文件中。
再一次,將這樣的功能整合到插件中而不是無休止地編輯主題文件被認為是“最佳實踐”。 無論如何,我們將在下一小節中查看如何添加您自己的自定義函數!
如何將我自己的自定義函數注入 WordPress?
現在,終於到了您將自己的功能注入 WordPress 的時候了! 對於任何開發人員來說,這都是一個重要的里程碑,因此可能需要慶祝一下。 首先,讓我們深入了解如何做到這一點。
雖然它總是最好的自定義代碼添加到一個插件,你以後釋放,在最起碼,不要在您的實際網站,除非你想在你的手中災難編輯功能! 在編輯主題的functions.php 文件之前,請務必確保對站點進行完整備份。
- 1. 利用免費插件添加功能,例如本教程將使用的“我的自定義功能”。
2. 安裝插件後,轉到“外觀”,然後轉到“自定義功能”,您將通過這個新插件看到現有的自定義功能。
3. 您可以為此添加一個非常簡單的 PHP 函數。 例如,向下滾動到文本輸入框的底部,您可以打印出“Hello, world!”。 帶有以下文字:
函數 hello_world() { echo "你好,世界!"; }
4. 請注意,這只是標準的 PHP; 沒有一個“WordPress 框架”或類似的東西會從根本上改變語法,這對現有的 PHP 開發人員來說是個好消息。
5. 最後一個快速提示! 當您正在更新主題和站點的功能時, wp-config.php
有一個文件。 它位於主題的根目錄中,您需要通過 SFTP 客戶端在您喜歡的文本編輯器中打開它。
找到一行寫著define('WP_DEBUG', false);
. 只需將其更改為define('WP_DEBUG', true);
. 請注意,完成開發後,您必須將其改回FALSE
。
如何使用 Functions.php 向頁眉和頁腳添加腳本?
頁眉和頁腳腳本通常用於廣告目的和其他跟踪目的。 這些可能需要插入到每個頁面上,或者只插入到某些目標頁面上。 無論哪種方式,除非您是經驗豐富的 WordPress 用戶,否則直接編輯該 PHP 文件都不是可行的方法。
再一次,我們需要在開始之前添加一個小插件。 這一次,該插件稱為插入頁眉和頁腳插件。
將此添加到您的主題或站點後,您將能夠通過“設置”然後“插入頁眉或頁腳”訪問編輯功能。 您應該看到一個用於頁眉腳本的框和一個用於頁腳腳本的框。 澄清一下,這個插件希望你輸入 JavaScript,而不是PHP,所以在繼續之前確保你的腳本格式正確,因為這個插件不會給你錯誤信息; 您放入這些框中的任何內容都將作為 JavaScript 放入您的頁面!
您需要準備好要添加的腳本並將其粘貼到框中,然後單擊“保存”,該過程就完成了! 一些用戶報告說,在客戶端清除瀏覽器緩存和服務器端緩存之前,這些更改是不可見的,因此您可能需要執行此操作才能使更改真正生效。
總結:WordPress Functions.php 文件入門
感謝您花時間閱讀我們冗長的(但希望值得!)教程,其中介紹了 WordPress 的 functions.php 文件的工作原理、函數文件的 WordPress 核心版本和該文件的主題版本之間的區別。 我們希望所有這些信息在融入您的日常 WordPress 工作流程和網站管理實踐時,可以幫助您成為更好的 WordPress 開發人員!
自 2011 年以來,Kristen 一直在編寫教程來幫助 WordPress 用戶。您通常會發現她在為 iThemes 博客撰寫新文章或為 #WPprosper 開發資源。 工作之餘,克里斯汀喜歡寫日記(她寫了兩本書!)、遠足和露營、烹飪以及與家人一起進行日常冒險,希望過上更現代的生活。
