WordPress functions.php 常用小技巧:改掉不順的翻譯、摘要長度、RSS 加圖片、自訂文章網址、拿掉版本號

WordPress functions.php 常用小技巧:改掉不順的翻譯、摘要長度、RSS 加圖片、自訂文章網址、拿掉版本號

最後更新:2026/10/15

網站做久了,總會累積一些「不大不小」的想法:外掛裡某個字翻譯得怪怪的、文章列表的摘要太短、RSS 分享出去沒有圖片……每一件都不值得裝一個外掛,但放著又覺得不順眼。

這些事,幾行程式碼就能解決。這篇整理我們最常用的五段,每一段都可以單獨使用。程式碼雖然叫「functions.php 技巧」,我們建議放在 Code Snippets 這類外掛,不要直接改佈景主題的 functions.php,佈景主題一更新就會被蓋掉。放法見〈WooCommerce 結帳頁改成台灣習慣〉。

不想自己改?把這篇交給 AI

把這篇的網址(或全文)連同下面這段話貼給 AI:

我的網站是 WordPress。我想照下面這篇文章,用幾段小程式碼調整網站:改掉外掛裡不順的翻譯、調整文章摘要、RSS 加上精選圖片、修改自訂文章類型的網址、拿掉原始碼裡的版本號。
請先問我:我要做哪幾項、我用的是哪一個佈景主題、要改的字或網址是什麼。
問清楚之後,再一步一步告訴我:要用哪一段程式碼、貼在哪裡、哪些地方要換成我自己的資料,以及改完怎麼測試。
如果文章的做法不適合我的網站,請直接告訴我原因和替代做法。
文章:(貼上這篇的網址,或整篇內容)

改之前先備份,密碼不要貼給 AI。

一、改掉外掛裡不順的翻譯

WordPress 和外掛的繁體中文,是志工一句一句翻的,難免有幾個字不順。例如 WooCommerce 的「我的帳戶」選單裡,下載頁被翻成「下載次數」,客人看了會以為那一頁是在算次數。

// 1. 改掉外掛裡不順的翻譯:用英文原文對,只改 WooCommerce 的字
add_filter('gettext_woocommerce', function ($translation, $text) {
    $mine = [
        'Downloads' => '下載',
    ];
    return $mine[$text] ?? $translation;
}, 10, 2);

這段的重點是「用英文原文對」。網路上有些寫法是把網站上所有的「下載次數」換掉,但同一個詞在不同地方可能是不同意思,例如下載設定裡「即使僅擷取到檔案的一部分,也會計入下載次數。」這句,「下載次數」就是在算次數,不該改。用英文原文 Downloads 對,只會改到原本就是「Downloads」這個詞的地方;gettext_woocommerce 又限定只看 WooCommerce 的翻譯,不會動到其他外掛。

我們在測試站加了之後,「我的帳戶」選單、下載頁的標題、寄給客人的完成訂單通知信裡的下載區標題,都從「下載次數」變成「下載」。要改其他字,在 $mine 裡多加一行 '英文原文' => '你要的中文',;要改別的外掛,把 woocommerce 換成那個外掛的文字網域,通常就是它在 plugins 資料夾裡的資料夾名稱。

英文原文怎麼查?最簡單的方法是到「使用者 > 個人資料」把自己的「語言」暫時改成 English,同一個畫面看一次英文,再改回來。只會改到你自己的後台語言,客人看到的不受影響。

要注意,新版的購物車、結帳區塊裡的字是用另一種方式翻譯的,這招改不到。

二、文章摘要的長度和結尾

部落格列表、分類頁顯示的文章摘要,預設很短,最後還有一個「[…]」。繁體中文的網站,摘要長度是算「字」的,預設 55 個字。

// 2. 文章摘要:長度改成 100 個字,結尾的 […] 換成「…」
add_filter('excerpt_length', function () {
    return 100;
});
add_filter('excerpt_more', function () {
    return '…';
});

測試站一篇長文章的摘要,原本是 55 個字加「 […]」,加了之後變成 100 個字加「…」。

這段適合傳統佈景主題。新版區塊佈景主題(例如 Twenty Twenty-Five)的摘要是「內容摘要」區塊,長度看區塊設定裡的「字數上限」,程式碼改不到;到「外觀 > 編輯器」打開文章列表的範本,選取「內容摘要」區塊直接改就好。我們在測試站把字數上限設 30,加了程式碼還是 30 個字。

三、RSS 加上精選圖片

很多人用 RSS 自動把新文章分享到其他地方,例如用自動化工具發到粉專或電子報。WordPress 的 RSS 預設只有文字,分享出去沒有圖,點擊的人少很多。

// 3. RSS 每篇文章前面加上精選圖片(自動分享到其他平台時才有圖)
function mimi_feed_thumbnail($content) {
    if (has_post_thumbnail()) {
        $content = get_the_post_thumbnail(null, 'large') . $content;
    }
    return $content;
}
add_filter('the_excerpt_rss', 'mimi_feed_thumbnail');
add_filter('the_content_feed', 'mimi_feed_thumbnail');

RSS 裡每篇文章有兩個地方放內容:摘要和全文,兩個都加上圖片。我們打開測試站的 /feed/,有精選圖片的文章,摘要和全文前面都多了一張圖。RSS 自動分享的做法,可以參考〈自媒體的 3 種自動化〉。

四、佈景主題的「作品集」網址改成你要的字

不少佈景主題內建「作品集」功能,網址固定是 /portfolio/作品名稱/。如果你想改成 /works/,或其他跟你的行業比較搭的字:

// 4. 佈景主題內建的「作品集」網址從 /portfolio/ 改成 /works/(改完到「設定 → 永久連結」按一次儲存)
add_filter('register_post_type_args', function ($args, $post_type) {
    if ($post_type === 'portfolio') {
        $args['rewrite']['slug'] = 'works';
    }
    return $args;
}, 10, 2);

portfolio 是佈景主題給作品集取的代號,每個佈景主題可能不同。打開後台作品集的列表,網址裡 post_type= 後面的字就是代號。貼好之後,一定要到「設定 > 永久連結」按一次「儲存設定」,新網址才會生效。

我們在測試站用一個代號 portfolio 的作品集測試:改完之後 /works/cafe-site/ 打得開,作品集列表頁也變成 /works/;舊網址 /portfolio/cafe-site/ 被 WordPress 自動轉到新網址。不過這是 WordPress 用名稱猜的,不保證每個舊網址都猜得到,已經在別處分享過的重要網址,最好另外設定轉址。

五、原始碼裡拿掉版本號和 Yoast 的註解

打開網站的原始碼,<head> 裡有一行 <meta name="generator" content="WordPress 7.1.3">,裝了 WooCommerce 還會多一行 WooCommerce 的版本;用 Yoast SEO 的網站,還有一段「This site is optimized with the Yoast SEO plugin」的註解。

// 5. 原始碼裡拿掉 WordPress 版本號和 Yoast SEO 的註解
add_filter('the_generator', '__return_empty_string');
add_filter('wpseo_debug_markers', '__return_false');

測試站加了之後,網頁原始碼裡 WordPress 和 WooCommerce 的版本號都不見了,RSS 裡的版本號也一起拿掉;Yoast 那兩行註解消失,Yoast 給 Google 看的結構化資料照樣在。

要說清楚的是,拿掉版本號不會讓網站更安全。CSS、JavaScript 檔案網址後面的 ?ver= 還是看得出版本,懂的人一樣查得到。網站安全靠的是外掛和 WordPress 保持更新、密碼夠強、不用的外掛刪掉。這段的用處是讓原始碼乾淨一點,少給自動掃描程式一點線索。

另外兩個常被問的小事

貼進文章的 HTML 被加了奇怪的換行。 從別的地方複製一段 HTML,貼進文章後版面亂掉,原始碼裡多了好幾個 <br /> 和 <p>。這是 WordPress 的自動分段功能,它會把換行變成 <br />、空行變成段落。我們在測試站試過:同一段 HTML 放在只有傳統編輯器內容的文章裡,被加上 <br /> 和 </p><p>;放在「自訂 HTML」區塊裡,原封不動。所以貼 HTML 就用「自訂 HTML」區塊。網路上有教整個關掉自動分段的程式碼,不建議,舊文章的段落會全部黏在一起。

文章列表想顯示留言數。 區塊佈景主題直接在文章範本裡加「留言計數」區塊就好,不用寫程式。

小技巧放久了,記得整理

這類程式碼越加越多,一年後可能連自己都忘了哪一段是做什麼的。每一段前面都留一行說明,像這篇的註解一樣寫清楚「改了什麼」;用 Code Snippets 的話,一段存成一個項目,取一個看得懂的名稱,哪天不需要了直接停用。

如果你想要一個不用東補西補、一開始就把細節做好的網站,可以先看〈IG 帳號不是你的資產〉想想網站要做到什麼。MIMI 專做客製化網頁設計,網站交件時會把常用的設定一起處理好。MIMI 提供台灣網頁設計服務,各縣市的店家都可以用電話、Email 和設計師討論;費用可以先看首頁的製作費用參考,歡迎聯絡 MIMI。

WordPress 後台依角色換樣式:員工看不到外掛廣告、常用按鈕放大、管理員一眼認得出來
WordPress 後台更新通知太多:哪些能關、哪些不能關,自動更新怎麼設

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

我的車
願望清單
最近瀏覽過的
類別