如何在 WordPress 中查找、訪問和編輯 functions.php

已發表: 2022-08-23

如果您剛剛開始使用 WordPress 開發,您應該熟悉的最重要的文件之一是functions.php文件。 實際上,您可能會在 WordPress 網站上使用三個可能的functions.php文件,每個文件都扮演著不同的角色。 了解這些文件的位置、它們的用途以及修改它們的方式和時間將有助於您解決問題並讓您更好地控制站點的功能。

在本文中,我們將介紹您需要了解的有關 WordPress functions.php文件的所有信息。 您將了解functions.php的功能以及如何查找和編輯它。 我們甚至會包含一些有用的代碼片段來試用。

您可以使用下面的目錄從頭開始閱讀或跳轉到特定部分:

  • WordPress中的functions.php是什麼?
  • functions.php文件在哪裡?
  • 如何訪問functions.php
    • 在 WordPress 管理界面中訪問functions.php
    • 通過 FTP 訪問functions.php
    • 在您的 cPanel 中訪問functions.php
  • 我什麼時候應該在 WordPress 中編輯functions.php
  • 如何在 WordPress 中編輯functions.php
    • 在 WordPress 主題文件編輯器中編輯functions.php
    • 使用文本編輯器編輯functions.php
    • 直接在cPanel中編輯functions.php
  • 使用插件向您的 WordPress 網站添加功能
  • 如何保護functions.php免受安全漏洞攻擊
  • 我可以在 WordPress 的functions.php中添加什麼代碼?
  • 常問問題
    • 我需要創建一個子主題來編輯functions.php嗎?
    • 如果我無權訪問我的 WordPress 儀表板,如何從備份中恢復functions.php
    • 我可以將 JavaScript 添加到我的functions.php文件嗎?

WordPress中的functions.php是什麼?

在 WordPress 中, functions.php文件是決定站點工作方式的重要代碼所在的位置。 實際上,每個 WordPress 網站中至少有兩個functions.php文件——一個包含在 WordPress 核心中,一個包含在您的主題中。 如果您使用的是子主題,您的子主題文件夾中還應該有一個functions.php

WordPress 核心中的functions.php文件包含 WordPress 運行所需的重要代碼。 您幾乎不應該修改 WordPress 核心的functions.php文件中的代碼。

您的主題的functions.php文件是您網站的所有主題特定功能所在的位置 - 例如自定義菜單位置、小部件區域、自定義頁眉和頁腳內容和功能、帖子摘錄長度等。

您的主題的functions.php文件的行為方式與 WordPress 插件非常相似。 不同之處在於, functions.php應該用於特定於主題的代碼,而插件應該用於即使在切換主題時仍將保留的功能。

functions.php文件在哪裡?

我們已經討論了functions.php文件在WordPress核心和主題文件中的作用,但是你如何找到functions.php文件呢? WordPress中的functions.php在哪裡?

您所有的 WordPress 文件都位於您網站的根目錄和各種子文件夾中。 您的根目錄通常命名為public_htmlwww ,但可能有不同的名稱。 如果您不確定在服務器上的何處可以找到 WordPress 安裝文件夾,請聯繫您的網絡託管服務商。

一旦你找到了你的 WordPress 文件在你的服務器上的位置,你就可以開始尋找你的functions.php文件了。 我們已經提到, functions.php最多有三個位置:WordPress 核心、您的主題文件夾和您的子主題文件夾。 在本節中,我們將討論在哪裡可以找到每一個。

WordPress核心中的functions.php在哪裡?

如果您在 WordPress 核心中尋找functions.php的位置,您可以在 WordPress 安裝的wp-includes文件夾中找到它。

在 wp-includes 中找到 functions.php 文件

雖然您永遠不應該在 WordPress 核心中編輯functions.php ,但您可能會發現自己出於某種原因需要檢查它。 在 WordPress 核心中的functions.php中四處尋找的最可能的情況是,如果您懷疑惡意軟件已被注入其中。

甚至在打開functions.php之前,您應該備份您的 WordPress 站點,以防您不小心更改了導致嚴重錯誤的文件。 如果您發現functions.php已損壞或被黑客入侵,則您可能有 WordPress 的其他區域受到影響。 最好的辦法是簡單地用全新安裝替換 WordPress,而不是嘗試一個一個地刪除所有有問題的腳本。

我的 WordPress 主題文件夾中的functions.php在哪裡?

您的主題的functions.php文件位於主題文件夾的主目錄中: wp-content → Themes → yourtheme

在主題文件夾中找到functions.php文件

WordPress子主題文件夾中的functions.php在哪裡?

WordPress 子主題functions.php文件位於子主題文件夾的主目錄中: wp-content → Themes → yourtheme-child

找到子主題functions.php文件

如何訪問functions.php

知道functions.php的位置只是工作的一半。 現在是如何在 WordPress 中訪問functions.php的問題。 雖然 WordPress 核心中的functions.php文件只能通過安全文件傳輸協議 (SFTP) 或通過 cPanel 訪問,但您的主題和子主題functions.php文件也可以在 WordPress 主題文件編輯器中訪問。

在 WordPress 主題文件編輯器中訪問functions.php

如果您需要訪問您的主題或子主題的functions.php文件,您可以直接從 WordPress 主題文件編輯器中進行操作。 在您的 WordPress 儀表板中,轉到外觀 → 主題文件編輯器

您將被帶到編輯主題頁面。 在此處,在Select theme to edit旁邊的下拉列表中,選擇您的主題並單擊Select 。 您將在屏幕最右側的“主題文件”列下看到可編輯的文件列表。 單擊functions.php打開文件。

找到functions.php文件

如果您在父主題的functions.php文件中,您會在屏幕底部的“更新文件”按鈕上方看到一條警告通知,上面寫著“注意:這是您當前父主題中的文件”。

注意:如果您不是主題開發人員,則應在子主題的functions.php文件中進行更改,以避免在將來的主題更新中覆蓋您的編輯。

通過 SFTP 訪問functions.php

第 1 步:安裝 SFTP 客戶端。 如果您還沒有 SFTP 客戶端,則需要下載一個。 有一些很棒的免費和高級選項,包括:

應用系統免費或高級
WinSCP 視窗自由的
Filezilla 視窗、Mac、Linux 免費和高級選項
賽博鴨視窗,Mac 自由的
發送蘋果電腦優質的

在此示例中,我們將使用 Filezilla。 其他 SFTP 客戶端應該以類似的方式工作。

第 2 步:檢索您的 SFTP 憑據。 要通過 SFTP 登錄您的服務器,您需要以下詳細信息:

  • 主機(您的服務器的 IP 地址或 url)
  • SFTP 用戶名
  • 密碼
  • 端口號

這些詳細信息通常可以在您的主機控制面板中找到。 此信息可能會為您生成,或者您的主機可能會提示您創建 SFTP 用戶名和密碼。 如果您不知道在哪裡可以找到這些憑據或無法弄清楚如何創建它們,請搜索您的房東的幫助文檔以獲取說明或聯繫他們的支持團隊。

第 3 步:輸入您的 SFTP 憑據。

輸入您主機的 IP 地址或 url、您的 SFTP 用戶名、密碼和端口號(通常為 22 或 2222,但有些主機可能使用不同的端口)。

在 Filezilla 中輸入 sftp 憑據

注意:如果您的 SFTP 客戶端使用首次使用時信任 (TOFU) 身份驗證,您可能會收到“主機密鑰未知”警報。 如果您打算使用 SFTP 客戶端再次訪問該站點,請選中“始終信任此主機,將此密鑰添加到緩存”。 單擊“確定”繼續。

filezilla 中的未知主機密鑰消息

第 4 步:導航到您網站的根目錄。

登錄後,您會在屏幕按鈕上看到兩個文件樹——一個在左側,一個在右側。 右側列出了 Web 服務器(遠程)上的目錄。 左側列出了您計算機上的目錄(本地)。

您的根目錄通常位於標有wwwpublic_html的文件夾中,但它可能使用不同的名稱。 如果您不確定要查看哪個文件夾,請諮詢您的託管服務提供商。 如果您在文件列表頂部附近看到wp-adminwp-contentwp-includes文件夾,您將知道您位於正確的文件夾中。

在 Filezilla 中找到 public_html 文件夾

第 5 步:導航到WordPress 核心、父主題或子主題中的functions.php 。 如果您在 WordPress 核心中尋找functions.php ,您將導航到wp-includes文件夾。

如果您在主題目錄中尋找functions.php ,您將導航到wp-content主題yourtheme

要找到您的子主題的 functions.php 文件,請轉到wp-content → 主題 → yourtheme-child。

第 6 步:下載functions.php 現在您知道functions.php的位置並已訪問它,您可能想要檢查或編輯該文件。 在執行此操作之前,您需要下載它。 右鍵單擊您的functions.php文件並選擇下載。 您的文件將下載到您的本地計算機。

從 Filezilla 下載 functions.php 文件

在 cPanel 中訪問functions.php

如果您的主機使用 cPanel,您可以通過其文件管理器訪問functions.php 。 如果您不知道如何在主機的儀表板中找到 cPanel,請聯繫他們的客戶支持尋求幫助。

第 1 步:打開 cPanel 的文件管理器。 進入 cPanel 後,導航到文件部分並單擊文件管理器

第 2 步:打開您網站的根文件夾。 根文件夾通常稱為wwwpublic_html ,但它可能有另一個名稱。 某些主機上的根文件夾命名約定不同,因此如果您不確定要查看哪個文件夾,請諮詢您的託管服務提供商。

如果您在文件列表頂部附近看到wp-adminwp-contentwp-includes文件夾,您將知道您位於正確的文件夾中。

第 3 步:查找並下載functions.php WordPress 核心的functions.php文件位於您的wp-includes文件夾中。

您的主題的functions.php文件位於wp-content → 主題 → yourtheme

如果您正在尋找您的子主題的functions.php文件,您可以在wp-content → 主題 → yourtheme-child 中找到它。

找到所需的functions.php文件後,右鍵單擊functions.php並單擊Download ,或單擊functions.php然後單擊頂部菜單中的Download選項。

從 cpanel 下載 functions.php 文件

如果您在保存文件時重命名文件,請確保在重新上傳之前將其重新命名為functions.php 。 在您更改和覆蓋functions.php之前,請備份您的 WordPress 網站。

我什麼時候應該在 WordPress 中編輯functions.php

在我們深入研究如何編輯functions.php之前,我們應該討論一下是否以及何時應該編輯它。 您可能想在 WordPress 中編輯 PHP 代碼的原因有很多,但是將該代碼添加到您的functions.php文件中並不總是最好的選擇,只應在某些情況下進行,我們將在下面討論。

何時在 WordPress 核心中編輯functions.php

絕不。 您不應該在 WordPress 核心中編輯functions.php 。 如果您發現它已損壞,您最多可以替換它,但刪除或添加代碼到 WordPress 核心函數.php 可能會破壞您的網站。 所以,你可以打開它,檢查它,如果需要的話,用新的副本替換它,但不要在任何實時網站上亂七八糟。

何時在主題中編輯functions.php

當涉及到主題的functions.php文件時,您可能需要也可能不需要編輯它。 如果您正在創建自己的主題,您肯定會想在functions.php中添加一些自定義代碼。 幾乎每個主題的functions.php文件中都有代碼,這些代碼為其提供了一組獨特的特性和功能。 除了您的樣式表之外,這些功能是使一個主題與另一個主題不同的重要部分。

如果您要向主題的functions.php文件添加代碼,該代碼不是特定於您的主題並且可以獨立於您的主題使用,請考慮將其作為插件。 通過這種方式,您可以跨多個主題使用該功能,甚至可以將其提交到 WordPress.org 插件庫,以便其他 WordPress 用戶受益。

在創建插件之前,請檢查插件庫以確保您正在創建的內容不存在。 如果已經存在高質量的解決方案,您可能希望為站點上的不同自定義功能節省開發精力。

何時在您的子主題中編輯functions.php

如果您使用的是開發人員提供的主題,並且想要修改functions.php文件,則應始終使用子主題進行這些更改。 當主題開發人員發布他們的主題的新版本並且您更新到最新版本時,您當前的主題將被新文件覆蓋 - 包括functions.php

子主題不受父主題更新的影響,因此如果您在子主題的functions.php文件中進行更改,您將保留所有自定義代碼。

在添加代碼之前,請考慮使用插件是否是更好的解決方案。 您添加的代碼是否特定於您的主題? 編輯您的子主題的functions.php文件。 如果您將來更改主題(例如 Google Analytics 跟踪代碼或 Facebook 像素),您要添加的代碼是否仍然保留? 使用插件。

如何在 WordPress 中編輯functions.php

您應該始終採取措施保護您的網站,避免在編輯functions.php時可能犯的任何錯誤。 因此,在您開始進行編輯之前,請備份您的站點並考慮創建一個臨時站點以首先對其進行測試。 這樣,如果您不小心將一些導致重大問題的代碼添加到functions.php中,或者更糟糕的是,您的網站完全崩潰,您的實時站點就不會中斷。

現在您已經備份了您的站點,您可以繼續編輯您的functions.php文件。

如何在 WordPress 主題文件編輯器中編輯functions.php

在 WordPress 主題文件編輯器中編輯functions.php有點冒險。 如果您使用此工具是因為您無權訪問 cPanel 或 SFTP,那麼如果您的編輯導致致命錯誤導致您無法訪問 WordPress 儀表板,那麼您將處於非常糟糕的境地。

如果您想在主題文件編輯器中編輯functions.php ,請確保您可以直接訪問服務器和備份,以便您可以快速恢復備份文件。

您可以在 WordPress 管理面板的外觀 → 主題文件編輯器下找到 WordPress 主題文件編輯器。

您將被帶到 Edit Themes 屏幕,您應該在其中選擇您的子主題,然後從屏幕右側的 Theme Files 列中選擇functions.php文件。

在主題文件編輯器中編輯functions.php文件

如果您選擇了父主題,您會在屏幕底部看到一條警告,上面寫著“注意:這是您當前父主題中的文件。” 您不想對父主題的functions.php文件進行編輯,因為您的更改將在下次更新主題時被覆蓋。

如果您在文件中看到您不理解的功能,WordPress 在更新文件按鈕上方包含一個方便的文檔查找功能。 單擊下拉菜單並蒐索您要了解更多信息的函數名稱,然後單擊查找。 您將被引導至該功能的 WordPress.org 文檔。

完成更改後,單擊更新文件。 檢查您網站的前端和後端,以確保一切仍按預期工作。 如果您遇到致命錯誤並需要從備份中恢復functions.php ,您可以在 cPanel 中或通過 SFTP 執行此操作。

使用文本編輯器編輯functions.php

編輯functions.php的最佳方式是在您選擇的代碼編輯軟件中。 由於您在本地計算機上編輯離線副本,因此您無需連接到 Internet 即可處理文件。 您還可以更好地控制何時將更改提交到您的實時站點。

您可以隨時編輯您的代碼,並在您的網站通常獲得最少流量的時候上傳您的更改。 這樣,如果有任何問題,將影響最少的訪問者。

第 1 步:在文本編輯器中打開functions.php 。 如果您不熟悉使用文本編輯器,有幾個免費選項可供選擇。

免費源代碼和純文本編輯器:

應用系統
記事本++ 視窗
原子.io 視窗、Mac、Linux
昇華視窗、Mac、Linux
文本編輯
*確保您處於純文本模式
Mac(默認應用程序)
記事本Windows(默認應用程序)

第 2 步:編輯functions.php並保存到您的本地計算機。 根據您用於編輯functions.php文件的程序,您的顯示可能會有所不同。 這是 atom.io 中 PHP 代碼的樣子:

在 atom.io 中編輯 functions.php

添加或更改您需要的任何信息,然後保存您的文件。

第 3 步:通過 SFTP 或 cPanel 登錄您的 Web 服務器。 導航到您的主題或子主題文件夾並找到functions.php文件。

第 4 步:在您的 Web 服務器上更改functions.php的文件名。 如果您編輯的版本包含錯誤,您不希望覆蓋您的原始functions.php文件。 當然,您已經進行了備份,但不必從備份中提取functions.php文件,您將擁有原始文件。

如果出現問題,您希望能夠快速恢復functions.php文件,因此將其重命名為“functions-orginal.php”之類的名稱將確保原始文件的內容保留在您的服務器上。

重命名functions.php文件

第 5 步:將functions.php從您的本地機器上傳到您的網絡服務器。 使用 SFTP 或 cPanel,將您的functions.php文件上傳到您的主題或子主題的主目錄。

第 6 步:訪問您的網站以確保其正常運行。 一旦你上傳了你的functions.php文件,你應該檢查以確保你的網站上一切正常。 訪問前端並登錄到 WordPress 儀表板,以確保一切都可以訪問並正確顯示和運行。

第 7 步:刪除舊的、重命名的functions.php文件。 一旦您確定您的站點工作正常,您可以刪除functions-original.php (或您將其重命名為的任何內容)。 如果您在路上發現問題,您仍然應該從您所做的備份中獲得您的functions.php文件。

直接在cPanel中編輯functions.php

如果您沒有或不想使用源代碼編輯器,您可以直接在 cPanel 中編輯functions.php (如果您的主機使用 cPanel)。 就像在 WordPress 主題文件編輯器中編輯一樣,它比在本地機器上工作風險更大。 如果您在編輯時 Internet 連接中斷,您可能會丟失所做的更改。 您還冒著可能覆蓋原始functions.php文件的風險。

第 1 步:在 cPanel 中找到functions.php 。 在 cPanel 中,單擊文件管理器

導航到您的根文件夾(通常是public_htmlwww ,但它可能有不同的名稱)。

第 2 步:複製functions.php 在文件管理器主菜單中,單擊+ 文件夾以添加新文件夾。 您需要復制您的functions.php文件並將其保存在此處作為備份。

將您的新文件夾命名為易於識別的名稱,例如“備份功能”,以便您以後輕鬆找到它。 單擊創建新文件夾

製作functions.php文件的cpanel備份

第 3 步:在您的主題或子主題文件夾中找到functions.php並將其複製到備份文件夾中。 在您的主題或子主題文件夾中,向下滾動到functions.php並右鍵單擊文件名。 選擇複製

在 cpanel 中復制 functions.php 文件

將出現一個對話框,要求您輸入要將文件複製到的路徑。 您當前所在文件夾的路徑將被預先填充,因此如果備份文件夾的文件路徑與您看到的不同,請輸入正確的路徑。 單擊複製文件

第 4 步:導航回主題或子主題目錄中的functions.php 現在您有了備份,您可以回到主題或子主題目錄中的functions.php文件並開始編輯。

右鍵單擊functions.php ,然後單擊Edit

第 5 步:編輯functions.php 您現在應該在屏幕上看到functions.php文件的內容。 它應該看起來像這樣:

cpanel 中的 functions.php 文件示例

添加或更改您需要的任何信息,然後保存您的文件。

使用插件向您的 WordPress 網站添加功能

您可以使用 Code Snippets 之類的插件向您的網站添加功能,而不是直接修改functions.php文件。 如果您需要向您的站點添加大量功能,則很容易忘記您仍然需要哪些功能,哪些不需要。

Code Snippets 提供了一個圖形用戶界面 (GUI) 來管理您的 PHP 代碼塊。 您可以添加描述以便了解代碼應該做什麼,並打開和關閉代碼塊,就像激活和停用插件一樣。

由於您沒有對functions.php進行更改,因此將 PHP 函數添加到 WordPress 站點是一種更安全的方法。

如何保護functions.php免受安全漏洞攻擊

functions.php文件通常是黑客的目標,因此確保其安全應該是重中之重。 採取以下步驟來幫助您保護您的functions.php文件:

1.安裝安全插件

通過使用安全插件,您將在站點的多個區域享受高級保護,免受黑客攻擊。

Jetpack Security 是一種廉價的選擇,有助於保護您的網站免受惡意攻擊。 它包括惡意軟件掃描和一鍵修復、蠻力攻擊保護、停機時間監控、活動日誌,以便您了解您的網站是否以及何時被黑客入侵,以及通過兩因素身份驗證 (2FA) 提供的登錄保護。

Jetpack 主頁消息

Jetpack Security 還會監控您的站點是否有對核心 WordPress 文件、過時或不安全的插件以及其他漏洞的任何更改,以便您可以在黑客發現並利用它們之前捕獲它們。

此外,它還提供實時 WordPress 備份,因此如果出現任何問題,即使您無法登錄網站,您也可以快速恢復乾淨的版本。

2. 拒絕通過 .php 訪問 WordPress 核心功能.htaccess文件

如果您的網站託管在 Apache 服務器上,您可以使用 . htaccess文件通過阻止對整個wp-includes文件夾的訪問來幫助保護您的 WordPress 核心functions.php文件。

第 1 步:下載 .htaccess

使用 SFTP 或 cPanel,導航到您網站的根文件夾。 右鍵單擊。 htaccess並選擇下載將文件下載到本地計算機。

第 2 步:添加代碼以阻止對wp-includes文件夾的訪問

在源代碼或純文本編輯器中,打開 . htaccess並添加以下代碼:

 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule>

保存您的文件。 確保您的編輯器程序不包含文件擴展名。 如果您使用的是 Notepad++ 或 Text Edit,它可能會添加 .txt 文件擴展名。 該文件應該簡單地命名為“.htaccess”。

第 3 步:上傳修改後的 . htaccess回到根文件夾

上傳您編輯的 . htaccess文件回到您網站的根文件夾。 系統將詢問您是否要覆蓋現有文件。 單擊確定

現在你的 . htaccess文件應該阻止外部訪問wp-includes文件夾中的任何文件,包括functions.php

3. 使用functions.php拒絕訪問functions.php

您可以通過將以下代碼片段直接添加到functions.php來阻止對functions.php文件的直接訪問。

 if (!empty($_SERVER['SCRIPT_FILENAME']) && 'functions.php' == basename($_SERVER['SCRIPT_FILENAME'])) { die ('Access denied!'); }

4.在根目錄外隱藏functions.php

黑客知道所有標準 WordPress 文件的默認位置。 將敏感文件的位置更改為根目錄之外的受限訪問文件夾可以使其遠離黑客。 這個過程比僅僅向您的.htaccess文件中添加一些代碼要復雜一些,但是為您的網站增加額外的保護層是值得的。

只需幾個步驟,您就可以保護根文件夾之外的functions.php

第 1 步:下載您當前的functions.php文件

如果您要移動主題的functions.php文件,您可以在wp-content → 主題 → yourtheme下找到它。 您的子主題文件將位於wp-content → 主題 → yourtheme-child中。

找到functions.php文件後,通過 SFTP 或 cPanel 將其下載到您的計算機。

第 2 步:在根文件夾之外創建一個新目錄

導航到根目錄之外的下一個文件夾級別。 您應該會看到根文件夾以及其他幾個文件夾的名稱。 在此目錄中,右鍵單擊並選擇Create directory

在 Filezilla 中創建目錄

給你的目錄起一個容易記住的名字作為你的functions.php文件的位置。

第 3 步:將functions.php上傳到您的新文件夾

通過 SFTP 或 cPanel 將您之前下載的functions.php文件上傳到新文件夾中。

上傳functions.php文件

檢查您的新文件夾和functions.php文件權限,並確保它們設置為 600。

設置functions.php文件的權限

第 4 步:將 WordPress 指向新的functions.php文件

您的新目錄中應該有一個functions.php文件以及仍在您的主題文件夾中的原始functions.php文件。 為了讓 WordPress 找到並使用正確的文件,您需要刪除主題文件的functions.php文件和以下代碼片段中的所有信息:

 <?php include('/home3/usr/securefunctions/functions.php'); ?>

注意:您的文件路徑看起來會有所不同,因為您將使用服務器的目錄名稱。

在 cPanel 中,您可以打開根目錄的functions.php文件並直接編輯它,或者您可以使用源代碼編輯器編輯您之前下載到本地計算機的副本。 對於這個例子,我們已經編輯了我們之前使用 Atom.io 下載的副本。

保存您的funtions.php文件並將其上傳回您的主題目錄。

通過 ftp 返回 functions.php 文件

系統將詢問您是否要覆蓋該文件。 單擊確定

現在,WordPress 應該在根文件夾之外的安全位置引用您的新functions.php文件。

4.更改您的functions.php文件的名稱

更改您的functions.php文件的名稱是您可以採取的另一個步驟來保護它免受黑客攻擊。 您需要將此文件託管在根文件夾之外,因此,如果您已按照在根目錄之外隱藏functions.php中的流程進行操作,則只需執行幾個額外步驟。

第 1 步:在根文件夾外的安全目錄中,更改functions.php的文件名

轉到位於根目錄之外的functions.php文件夾,並將文件名更改為唯一的名稱,例如“keep-out.php”“these-are-not-the-functions-you-are-looking-for”。 php' 。 好的,最後一個有點長,但是只要將它包含在functions.php的主題文件夾副本中的文件路徑中,你怎麼稱呼它並不重要。

第 2 步:編輯根目錄下functions.php中的代碼以反映名稱更改

現在您已將名稱更改為functions.php以外的名稱,您需要確保functions.php的主題目錄副本指向正確的文件名。

functions.php的根文件夾副本下載到本地計算機並使用文本編輯器進行編輯。 將functions.php文件名更改為新文件名,然後保存文件。

 <?php include('/home3/usr/secureconfig/keep-out.php'); ?>

第三步:將functions.php上傳回主題目錄

系統將詢問您是否要覆蓋現有文件。 單擊確定

現在 WordPress 應該指向您重命名的函數文件。

functions.php的附加安全層

您可以通過對您的wp-config文件進行類似更改(例如重命名它、將其託管在根目錄之外以及拒絕公共訪問)來為您的整個網站(包括您的functions.php文件)添加一些額外的保護。

如果您在functions.php文件中看到可疑代碼並擔心您可能已經被黑客入侵,您需要閱讀有關如何從 WordPress 網站檢測和刪除惡意軟件的信息。

我可以在 WordPress 的functions.php中添加什麼代碼?

您可以將許多不同的代碼片段添加到 WordPress functions.php文件中。 但是,通過為許多功能使用插件(或編寫自己的插件)通常會更好地為您服務。 如果您要添加的代碼特定於您的主題,那麼您可以將該 PHP 代碼添加到您的子主題的functions.php文件中。

下面是一些有用的函數,你可以插入到你的子主題的functions.php文件中:

functions.php中添加一個新的管理員用戶

如果您失去了對 WordPress 儀表板的管理員訪問權限並且無法通過電子郵件恢復您的用戶名或密碼,您可以通過您的託管帳戶創建一個新的管理員用戶。 通過 SFTP 或 cPanel,您可以下載您的functions.php文件並添加以下代碼為您的站點創建一個新的管理員用戶。

 function qode_add_new_admin_account() { $user = 'your-username'; $password = 'your-password'; $email = 'your-email'; if ( ! username_exists( $user ) && ! email_exists( $email ) ) { $user_id = wp_create_user( $user, $password, $email ); $user = new WP_User( $user_id ); $user->set_role( 'administrator' ); } } add_action( 'init', 'qode_add_new_admin_account' );

在上面的代碼中,將“your-username”、“your-password”和“your-email”替換為您自己的憑據。 保存您的functions.php文件並將其重新上傳到您的主題文件夾。 這將使用您在代碼中分配的用戶名、密碼和電子郵件地址創建一個新的管理員用戶。

上傳文件後,導航到站點的登錄頁面並使用新的用戶名和密碼登錄。登錄成功並確認您擁有管理員權限後,您應該刪除添加到的代碼從functions.php創建新的管理員帳戶。

functions.php中添加和刪除圖像大小

當您將圖像上傳到 WordPress 媒體庫時,會生成圖像的多個變體。 除了您的全尺寸圖像外,WordPress 還具有默認的縮略圖、小尺寸、中尺寸和大尺寸。 您的主題通常會為您網站的各個部分提取最佳圖像大小。

如果您正在創建自己的主題或需要修改子主題以適應額外的自定義圖像大小,您可以在您的functions.php文件中執行此操作。

使用以下代碼並將您的自定義圖像尺寸名稱從“custom-small-square”和“custom-landscape”更改為您想要使用的任何名稱。 您的自定義圖像大小名稱旁邊的數字表示圖像大小(以像素為單位),因此請輸入寬度第一和高度第二的像素值。

 function register_custom_image_sizes() { if ( ! current_theme_supports( 'post-thumbnails' ) ) { add_theme_support( 'post-thumbnails' ); } add_image_size( 'custom-small-square', 450, 450, true ); add_image_size( 'custom-landscape', 1000, 600 ); } add_action( 'after_setup_theme', 'register_custom_image_sizes' );

請記住,額外的自定義圖像尺寸會影響您的網站並影響加載時間。 If you have some WordPress default image sizes that your theme doesn't use, you may want to delete and disable those to make room for your custom sizes.

If you want to disable WordPress default image sizes, you can place this code snippet into your functions.php file:

 add_filter( 'intermediate_image_sizes_advanced', 'prefix_remove_default_images' ); // This will remove the small, medium, and large default image sizes. function prefix_remove_default_images( $sizes ) { unset( $sizes['small']); // 150px unset( $sizes['medium']); // 300px unset( $sizes['large']); // 1024px return $sizes; }

If you only need to disable one or two sizes, you can only add those sizes to the code above and delete the code that you don't need.

Use functions.php to allow additional file types in uploads

WordPress only allows a few different file types to be uploaded in your WordPress dashboard. This is a reasonable security measure, but you might encounter a situation where you need to upload a file type that's not natively allowed.

To add more allowed file types to WordPress, add the following code to your child theme's functions.php :

 function additional_upload_file_types($mime_types){ $mime_types['stl''] = 'application/sla'; $mime_types['stl'] = 'application/vnd.ms-pki.stl'; $mime_types['stl'] = 'application/x-navistyle'; return $mime_types; } add_filter('upload_mimes', 'additional_upload_file_types', 1, 1);

For the above example, we used the stl file type, which is a CAD file type. It's an unusual file type to upload to a website outside of certain niche industries, but if your site is for an industrial designer, engineering firm, or even an orthodontics lab, you might find the ability to upload STL files really useful.

You can replace the $mime_type variable with whatever file extension suits the needs of your website. You'll also need to include the media type and subtype after that (eg 'application/sla' or 'image/octet-stream'). Here's a complete list of mime types that you can refer to.

Frequently asked questions about editing the functions.php file in WordPress

We've covered what the functions.php file is, how to find functions.php , how to access it, how to edit it, and a few code snippets you can add to your functions.php file. We'll wrap things up with a few helpful answers to frequently asked questions.

Do I really need to use a child theme to edit functions.php ?

簡短的回答? 是的。

If you're a theme developer, you'll definitely want to add your theme-specific functions directly to your theme's functions.php file. If you're modifying a theme from another developer that will get regular updates, however, you'll absolutely want to use functions.php within a child theme.

Most theme developers will periodically make updates to their themes for security and performance reasons, or to add new features. If you change the parent theme's functions.php file, those changes will all be overwritten when you update to your theme's latest version. All your hard work and customizations — poof! 走了。

Child themes aren't touched when the parent theme updates, so if you make changes to your child theme's functions.php file, your changes will be preserved any time you update your parent theme.

I edited functions.php and now I don't have access to my WordPress dashboard. 幫助!

In the unfortunate event that you edited the functions.php file and caused a critical error on your site that kept you from accessing the WordPress dashboard, don't worry — all is not lost!

There are a few things you can do to restore access to your site. You can edit functions.php via SFTP and a text editor or directly in cPanel if you know which bit of code caused the issue. Alternatively, you can restore functions.php from a backup or download a fresh copy of functions.php from your theme developer.

I know what code I messed up. I just need to access and edit functions.php to fix it.

See How to edit functions.php above for instructions on how to access and edit your theme or child theme's functions.php file.

I have no clue what I did to my functions.php file, but I have a backup.

If you have a backup on hand, you can access your files either on your web host's server or your remote server (depending on where you have opted to store these files), and use them to replace your corrupt functions.php file via SFTP or cPanel.

If you feel more comfortable restoring your entire site backup rather than trying to restore just the functions.php file, our article, “How to Restore WordPress from a Backup” goes in depth on the different methods you can use to restore your WordPress site.

I have no idea what code caused the problem and I didn't make a backup.

If you don't have a backup, you can download a fresh copy of the theme you're using from your theme developer, extract the functions.php file, and overwrite the broken functions.php file on your server via SFTP or cPanel.

Note: If you're using a theme that hasn't been updated in awhile, you may encounter issues in overwriting functions.php with a version that's from a much more recent update. If you encounter issues, you might be better off just manually updating your entire theme to the latest version. Alternatively, you can contact your theme developer to get the theme files for your current version and use that version of functions.php .

Can I add JavaScript to my functions.php file?

Yes, you can add code to your functions.php file that will add your custom JavaScript to either specific pages, posts, or all pages and posts on your site. This article covers all the different ways you can add JavaScript to your functions.php file.