WPML get different language url

主題開發很常會用到 home_url() 來取得頁面網址

<a href="<?php echo home_url('news') ?>">news</a>

但使用 WPML Plugin 來開發多國語言主題時,要先了解 home_url() & site_url() 的差異,假設目前頁面語言為「英文」,網址位於 en 這個目錄中

https://example.com/en/

同語言中切換頁面

WPML 很聰明,一樣可以使用慣用 home_url() 做為頁面連結就可以了,不需要帶 en 這個 language code 目錄,如果帶 en 這個 language code 目錄也沒有關係,以下三個用法,結果是一樣的

<a href="<?php echo home_url('news') ?>">news</a>
<a href="<?php echo home_url('en') ?>">日語</a>
<a href="<?php echo home_url('en/news') ?>">news</a>

連結網址輸出為:

https://example.com/en/news

切換不同語言

這部分要特別注意,需要使用 site_url() 這個 function 來取得連結,假設要由「英文」頁面切換至「日文」頁面

<a href="<?php echo site_url('ja') ?>">日語</a>
<a href="<?php echo site_url('ja/news') ?>">news</a>

連結網址輸出為:

https://example.com/ja/news

切換不同語言,使用 home_url() 加上 language code目錄,想說可以組出日文語言網址,這是沒有用的喔

<a href="<?php echo home_url('ja') ?>">日語</a>
<a href="<?php echo home_url('ja/news') ?>">news</a>

連結網址輸出仍然為:

https://example.com/en/news

發佈留言

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

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料