找我們做網站
↑
Wordpress · WordPress 客製與程式碼

WordPress PHP 教學:functions.php 放哪裡+4 段自訂後台程式碼

WordPress 客製與程式碼發布 2018.05.18更新 2026.10.02閱讀約 10 分鐘
WordPress PHP 教學:functions.php 放哪裡+4 段自訂後台程式碼

重點整理
WordPress 是用 PHP 寫成的,只要在子主題的 functions.php 加幾行程式碼,就能自訂後台頁尾文字、控制台公告、登入頁 Logo。WordPress 官方建議主機使用 PHP 8.3 以上,目前版本可在「工具 › 網站狀態 › 資訊 › 伺服器」查看。本文 4 段程式碼都在 WordPress 7.1.2+PHP 8.3 實際測試可用。

WordPress 後台很多地方看起來改不了,例如左上角的 WordPress 圖示、頁尾的「感謝採用 WordPress 進行創作」、登入頁的 W 字 Logo。其實只要懂得在正確的位置放幾行 PHP,就能換成自己公司的資訊。幫客戶架站時,把後台換上網站公司的聯絡方式,客戶遇到問題第一時間就知道找誰。

這篇會先說明 PHP 在 WordPress 裡扮演的角色、怎麼查網站的 PHP 版本,再示範程式碼該放在哪裡,最後提供 4 段可以直接複製使用的程式碼,每一段都附上實際效果截圖。

PHP 在 WordPress 裡做什麼?

PHP 是在伺服器上執行的程式語言。訪客打開網頁時,主機會先執行 WordPress 的 PHP 程式,到資料庫取出文章、套用佈景主題,最後組合成 HTML 傳給瀏覽器。WordPress 核心、佈景主題、外掛幾乎都是 PHP 寫的。

WordPress 提供了「掛鉤(Hooks)」機制,讓我們不用修改核心檔案,就能在特定時間點插入自己的程式:

  • Action(動作):在某個時間點「多做一件事」,例如 wp_dashboard_setup 在控制台載入時新增區塊。
  • Filter(篩選器):把某個內容「換掉」,例如 admin_footer_text 把後台頁尾文字換成我們要的字。

本文的程式碼全部都是用 add_action() 和 add_filter() 掛上去的,這也是 WordPress 官方建議的客製化方式。

先確認網站的 PHP 版本

WordPress 官方目前建議主機使用 PHP 8.3 或以上。目前的 WordPress 7.1 最低要求是 PHP 7.4,更舊的 7.2、7.3 已無法更新到新版;而 PHP 7.4 雖然還能執行,但早已停止安全更新。

到後台「工具 › 網站狀態」,切換到「資訊」分頁,展開「伺服器」,就能看到「PHP 版本」、「PHP 可存取的記憶體上限」、「上傳單一檔案大小上限」等資訊。

WordPress 後台「工具 › 網站狀態 › 資訊」的伺服器區塊,顯示 PHP 版本 8.3、記憶體上限 256M 等設定
WordPress 後台「工具 › 網站狀態 › 資訊」的伺服器區塊,顯示 PHP 版本 8.3、記憶體上限 256M 等設定

如果版本低於 8.1,建議先在測試站確認佈景主題和外掛相容,再請主機商升級。舊主題在 PHP 8 下最常見的問題是頁面空白或 500 錯誤,升級前一定要先備份。

程式碼要放在哪裡?

網路上的教學常說「貼到 functions.php」,但放錯檔案,下次主題更新時程式碼就會不見。建議依需求選擇:

WordPress PHP 程式碼片段的三個放置位置比較:子主題 functions.php(推薦)、Code Snippets 外掛、mu-plugins 資料夾
WordPress PHP 程式碼片段的三個放置位置比較:子主題 functions.php(推薦)、Code Snippets 外掛、mu-plugins 資料夾
  • 子主題的 functions.php(推薦):建立子主題後把程式碼加在最下方,父主題更新不會被覆蓋。
  • Code Snippets 外掛:不想碰檔案的話,用外掛在後台新增程式碼片段,可以個別啟用或停用,做法可參考Code Snippets 外掛教學。
  • mu-plugins 資料夾:在 wp-content/mu-plugins/ 放一個 .php 檔,會自動載入、不受主題影響,適合網站一定要有的設定。

不要直接改父主題(你正在使用的原版主題)的 functions.php,主題一更新,程式碼就會被覆蓋。

佈景主題檔案編輯器在哪裡?

WordPress 後台內建檔案編輯器,但位置會依主題類型不同:

  • 區塊佈景主題(例如 Twenty Twenty-Five):在「工具 › 佈景主題檔案編輯器」。
  • 傳統佈景主題:在「外觀 › 佈景主題檔案編輯器」。

進入後先在右上角「選取需要編輯的佈景主題」選子主題,再點右側檔案清單的「佈景主題函式庫(functions.php)」。如果選單裡找不到編輯器,可能是主機或資安外掛用 DISALLOW_FILE_EDIT 關閉了,這時請改用 SFTP 或主機的檔案管理員修改。

WordPress「佈景主題檔案編輯器」開啟子主題的 functions.php,內容是本文的 4 段自訂後台程式碼
WordPress「佈景主題檔案編輯器」開啟子主題的 functions.php,內容是本文的 4 段自訂後台程式碼

動手前的安全措施

functions.php 只要少一個分號或括號,整個網站就可能出現「這個網站發生嚴重錯誤」。修改前請做好:

  1. 先備份:至少把原本的 functions.php 複製一份到電腦。
  2. 準備 SFTP 或檔案管理員:萬一後台進不去,可以直接把檔案改回來。
  3. 留意復原模式信件:WordPress 偵測到嚴重錯誤時,會寄一封含「復原模式」連結的信給管理員信箱,可以用它登入後台停用出錯的主題或外掛。
  4. 最好先在測試站試:可以用 WordPress Playground 或本機環境先跑一次。

程式碼一:修改後台頁尾文字

後台每一頁左下角預設顯示「感謝採用 WordPress 進行創作」。用 admin_footer_text 篩選器可以換成自己的文字,例如維護廠商的聯絡資訊:

add_filter( 'admin_footer_text', function () {
	return '網站由鵠學苑示範團隊維護,有問題請來信 support@example.com';
} );

單引號裡的文字換成你要的內容即可,也可以放 <a href="網址">文字</a> 連結到聯絡表單。

程式碼二:在控制台新增公告區塊

會員或客戶登入後台時,第一眼看到的是控制台。用 wp_add_dashboard_widget() 可以加一個公告區塊,放維護通知或操作提醒:

add_action( 'wp_dashboard_setup', function () {
	wp_add_dashboard_widget( 'xue_notice', '網站公告', function () {
		echo '<p>本週五 22:00 進行主機維護,期間請勿發布文章。</p>';
	} );
} );

第一個參數 xue_notice 是區塊代號(自訂英文即可,不要重複),第二個是標題,最後的函式輸出區塊內容。重新整理控制台,就會看到「網站公告」區塊,頁尾文字也已經換成程式碼一的內容:

加入程式碼後的 WordPress 控制台:出現「網站公告」區塊,左下角頁尾文字也換成自訂的維護資訊
加入程式碼後的 WordPress 控制台:出現「網站公告」區塊,左下角頁尾文字也換成自訂的維護資訊

想讓公告內容不用改程式碼就能更新,可以參考網站後台公佈欄自訂資訊內容的做法。控制台區塊太多時,右上角「顯示項目設定」可以勾選要顯示哪些。

程式碼三:更換登入頁 Logo

登入頁(wp-login.php)預設是 WordPress 的 W 字 Logo。先把公司 Logo 上傳到子主題資料夾的 images/ 裡(例如 images/login-logo.svg,PNG 也可以),再加入:

add_action( 'login_enqueue_scripts', function () {
	$logo = get_stylesheet_directory_uri() . '/images/login-logo.svg';
	echo '<style>#login h1 a, .login h1 a{background-image:url(' . esc_url( $logo ) . ');background-size:contain;width:240px;height:80px;}</style>';
} );
add_filter( 'login_headerurl', fn() => home_url() );
add_filter( 'login_headertext', fn() => get_bloginfo( 'name' ) );

幾個重點:

  • get_stylesheet_directory_uri() 取得的是子主題資料夾網址;如果圖片放在父主題,要改成 get_template_directory_uri()。
  • 選擇器要寫 #login h1 a。我們實測只寫 .login h1 a 時,會被 WordPress 內建的登入頁樣式蓋過,Logo 換不掉。
  • width、height 依 Logo 比例調整;login_headerurl 讓點 Logo 時回到網站首頁,而不是 WordPress 官網。
WordPress 登入頁的 Logo 已換成自訂圖片,下方是使用者名稱與密碼欄位
WordPress 登入頁的 Logo 已換成自訂圖片,下方是使用者名稱與密碼欄位

程式碼四:移除後台左上角的 WordPress 選單

後台頂端工具列最左邊的 W 圖示,點開是 WordPress 官網、說明文件等連結,對客戶來說用處不大。用 admin_bar_menu 可以把它拿掉:

add_action( 'admin_bar_menu', function ( $bar ) {
	$bar->remove_node( 'wp-logo' );
}, 99 );

最後的 99 是執行順序,數字越大越晚執行,確保 WordPress 先把選單加上去,我們再移除。前面控制台截圖的左上角,就是移除後只剩「網站名稱」的樣子。

網路上 2018 年前後的舊教學,常用 #header-logo 這個選擇器來換後台左上角圖示,那是很舊版本的後台結構,現在的 WordPress 已經沒有這個元素,貼上也不會有效果。

常見問題

貼上程式碼後網站出現「嚴重錯誤」怎麼辦?

先用 SFTP 或主機檔案管理員打開子主題的 functions.php,把剛貼上的程式碼刪除或還原備份,網站就會恢復。也可以點 WordPress 寄到管理員信箱的「復原模式」連結登入後台處理。最常見的原因是少了分號、括號,或 <?php 重複出現。

程式碼要貼在 functions.php 的哪個位置?

貼在檔案最下方即可。檔案開頭已經有 <?php,不要再貼一次;如果檔案結尾有 ?>,程式碼要放在它之前,或直接把結尾的 ?> 刪掉。

沒有子主題,可以用什麼方式加程式碼?

可以用 Code Snippets 這類外掛在後台新增程式碼片段,或在 wp-content/mu-plugins/ 建立一個 .php 檔。兩種方式都不會因為主題更新而遺失,也比直接改父主題安全。

結語

修改 WordPress 不一定要大改主題,善用 Action 和 Filter,幾行 PHP 就能讓後台與登入頁換上自己的品牌資訊。記住三個原則:程式碼放子主題或 Code Snippets、修改前先備份、先在測試站確認沒問題再上線。另外別忘了定期到「網站狀態」看一下 PHP 版本,維持在官方建議的 8.3 以上,網站會更安全也更快。

鵠學苑・鵠崙設計鵠崙設計 2014 年成立,專注 WordPress 網站開發,400 多個網站在我們自己的主機上運作。鵠學苑的文章由團隊實際操作後整理,工具與外掛的功能以撰文當時為準。
鵠崙設計

不想自己摸索,
就交給我們做。

外掛設定、主機效能、改版搬家,這裡寫的每一件事,都是我們每天在客戶網站上做的工作。留下需求,1 個工作天內回覆。