WooCommerce 商品網址怎麼設:中文網址變亂碼、改網址前要知道的事、商店頁藏起某個分類

WooCommerce 商品網址怎麼設:中文網址變亂碼、改網址前要知道的事、商店頁藏起某個分類

最後更新:2026/10/13

把商品連結貼到 LINE 群組,結果出現一長串「%E6%89%8B%E5%B7%A5…」,客人看了不太敢點。這是很多新北網店都遇過的狀況。原因很單純:商品名稱是中文,WooCommerce 就拿中文當網址,而網址裡的中文在很多地方會被轉成這種編碼。

商品網址最好在開店初期就想清楚,因為上線之後再改,要處理舊連結。這篇從商品的「代稱」講起,再實測改網址格式會發生什麼事,最後處理一個常見的需求:某些商品不想出現在商店頁。

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

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

我的網站是 WordPress,有裝 WooCommerce。我想照下面這篇文章,整理商品網址(代稱和網址格式),並讓某個分類的商品不要出現在商店頁。
請先問我:網站上線多久、Google 收錄了沒有、想藏起來的分類是哪一個。
問清楚之後,再一步一步告訴我:要用哪一段程式碼、貼在哪裡、哪些地方要換成我自己的資料,以及改完怎麼測試。
如果文章的做法不適合我的網站,請直接告訴我原因和替代做法。
文章:(貼上這篇的網址,或整篇內容)

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

每件商品的「代稱」:建議用英文

商品網址的最後一段叫「代稱」,在商品編輯頁標題下方的網址旁邊按「編輯」,或在商品列表用「快速編輯」都能改。代稱用小寫英文和連字號,例如手工皂禮盒用 soap-gift-box,網址就是 /product/soap-gift-box/,貼到哪裡都不會變成亂碼。

已經上線的商品改代稱,舊網址會不會壞掉?我們在測試站把「手工皂禮盒」的代稱從中文改成 soap-gift-box,再打開原本的中文網址,WordPress 自動轉到新網址(301 永久轉址)。WordPress 會記住商品用過的舊代稱,所以單純改一件商品的代稱,舊連結還能用。

整個網站的網址格式:設定 > 永久連結

商品網址前面那一段 /product/,是在「設定 > 永久連結」頁面裡、WooCommerce 加上的「商品固定網址」決定的。可以選預設、「商店起點」、「商品包含分類起點」,或填「自訂起點」。同一頁上方的選用設定裡,還有「商品分類起點」和「商品標籤起點」,決定分類頁的網址長什麼樣子。

這些設定一改,就是整個網站的網址一起換。我們在測試站各改了一次,結果不太一樣:

商品的起點從 /product/ 改成 /item/,舊的 /product/商品代稱/ 打開時,WordPress 會用代稱去猜,找到同名的商品就轉過去,所以還是看得到商品。分類的起點從 /product-category/ 改成別的,舊的分類網址就直接出現找不到頁面(404),沒有任何轉址。

也就是說,改分類起點之前,要先想好舊網址怎麼辦:Google 已經收錄的分類頁、你在臉書貼過的分類連結、廣告的到達網址,都會變成錯誤頁。如果非改不可,改完要用轉址外掛把舊的分類網址一條一條轉到新網址。商品網址靠 WordPress 猜,大部分情況可以,但猜錯或猜不到的時候也是 404,最好一起設好轉址。

想把 /product/ 拿掉?

常有人問能不能讓商品網址變成 網域/soap-gift-box/,前面什麼都不要。網路上可以找到改寫網址規則的程式碼,但 WooCommerce 本身不支援這種格式,風險也不小:商品、頁面、文章都擠在同一層,只要有一個代稱撞名,其中一個就打不開;之後更新 WooCommerce 或換外掛,也可能突然失效。

/product/ 這幾個字對搜尋排名的影響很小,換來的麻煩卻很多。我們的建議是保留起點,把力氣放在代稱取得好、商品名稱和說明寫清楚。如果一定要拿掉,請用有在維護的網址管理外掛,不要自己貼程式碼。

某個分類的商品不要出現在商店頁

另一個常見的情況:店裡賣手工皂,也賣手工皂課程。課程放在「線上課程」分類,希望它有自己的分類頁,但不要和實體商品混在商店頁裡。

// 商店頁不列出「線上課程」分類的商品(分類頁、搜尋照常找得到)
add_action('woocommerce_product_query', function ($q) {
    if (!is_shop()) {
        return;
    }
    $tax_query = (array) $q->get('tax_query');
    $tax_query[] = [
        'taxonomy' => 'product_cat',
        'field'    => 'slug',
        'terms'    => ['course'],   // 換成你要藏起來的分類代稱
        'operator' => 'NOT IN',
    ];
    $q->set('tax_query', $tax_query);
});

woocommerce_product_query 是 WooCommerce 準備撈商品清單的時候,讓你補條件的地方。is_shop() 確認現在是商店頁,再加一個「分類不是 course」的條件。分類代稱在「商品 > 分類」裡看得到。

我們在測試站用傳統佈景主題和新版區塊佈景主題各測一次:加程式碼前商店頁有 2 件課程,加了之後兩種主題的商店頁都沒有課程,「線上課程」分類頁照樣列出課程。要注意的是,這段只管商店頁,站內搜尋還是找得到這些商品。

WooCommerce 每件商品也有一個「型錄可見度」,在商品編輯頁右上角的發佈區塊裡,可以選「只出現在搜尋結果」或「隱藏」。它是一件一件設定的,而且會連分類頁一起藏起來,適合「這件商品只給拿到連結的人買」這種情況。想讓整個分類保留自己的分類頁、只是不和其他商品混在商店頁,才需要上面這段程式碼。

程式碼放在 Code Snippets 這類外掛或子主題,放法和備份方式見〈WooCommerce 結帳頁改成台灣習慣〉。

網址定了就少動

網址就像店面的門牌,貼在社群、印在名片、存在客人的書籤裡。開店前花十分鐘把代稱和永久連結設好,比上線後再一條一條補轉址輕鬆得多。

如果你正要開網店,想從網址、分類到商店頁一開始就規劃好,可以先看〈IG 帳號不是你的資產〉想想網站要做到什麼。MIMI 專做客製化網頁設計,購物車電商網站可以從網址結構到商品分類一起規劃。MIMI 提供新北網頁設計服務,新北的店家可以用電話、Email 直接和設計師討論;費用可以先看首頁的製作費用參考,歡迎聯絡 MIMI。

WooCommerce 價格改成台灣習慣:去掉小數點、寫成「450 元」、標示含稅
WooCommerce 購物車規則:最少買幾件、成對購買、最低消費、預購和現貨分開結帳

發佈留言

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

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