WPML get different language url

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

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

同語言中切換頁面

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

連結網址輸出為:

切換不同語言

這部分要特別注意,需要使用 site_url() 這個 function 來取得連結,假設要[……]

Read more

WPML append current language Code in body tag

WPML 是什麼?

是一個出色的 WordPress 多國語言插件,功能非常強大
官網:https://wpml.org

在 body 標籤的 class 中加入當前的語言代碼

在進行多國語言網站開發的時候,會希望 Body 上面有一個可以判斷語言的 Class 可以讓 CSS 或 JavaScript 這類前端程式可以藉此方便去調整文字的樣式或功能等等,以樣式為例,因為不同語言的字寬可能不太一樣,通常需要再進行一些針對語言的樣式調整,以下代碼可在 body 標籤的 class 上加入目前的 Language Code

請將下列代碼置於主題根目錄下的 fuctions.php 文件

最後輸出結果

透過語言[……]

Read more

WPML 教你修改繁體中文為台灣國旗

WPML繁體中文的國旗是中國五星旗,這讓我不是很開心,雖然只在後台顯示,但很刺眼,我覺得有必要把它改掉

WPML有修改語言國旗功能,只是不是很明顯,不管!!!就是要改

選單:WPML > 語言 > Edit Languages

check box 選「自訂標記」後,按下「選擇檔案」按鈕

要找國旗圖很懶齁,來來來,這邊借你用借你用

直接下方輸入網址,接著按下右下角「儲存按鈕」

另外日語的部分預設翻為「繁體中文(中國)」,請改成「繁體中文(台灣)」

台灣國旗出現,呼~~~舒服多了,但不知道為什麼預設的五星旗不見了,算了!不重要,蘇胡

[……]

Read more

WordPress 最好用多國語言插件

網站:https://wpml.org/zh-hans/

WordPress 先天有多國語言障礙,需要用Plugin去強化,這部分大概是留給開發商的商機,然而用過不少多國語言插件,向海底撈針,浪費不少時間踩雷,目前覺得這款最好用,與大家分享WPML這個插件,功能算是最全面,非常強大的一款插件

WPML是一個高級插件,對於這種複雜的功能,還是有維護廠商的插件比較讓人信賴,尤其是對於有商業用途的人,穩定是一件很重要的事

最重要的是有無限版本,可以不限站點永久使用

30天退款保證

[……]

Read more

WPML 筆記

常數

  ICL_LANGUAGE_CODE當前語言的Code
ex:zh-hant、ja、en

Functions

獲取預設語言碼

由翻譯文章取得主要與言文章id

$element_id
(int) (Required) The ID of the post type (post, page, attachment, custom post) or taxonomy term (tag, category, custom taxonomy) to filter
$element_type
(string) (Required) The type of element the ID belo[……]

Read more

WPML fix get_posts() shows all languages problem

解決WPML使用get_posts(),會顯示所有文章列表,而不是顯示當前語言文章列表

$list = get_posts(array(
	'showposts' => -1,
	'post_type' => 'wpcf7_contact_form',
	'post_status' => 'publish',
));

解決方法:

在參數中加上 ‘suppress_filters’ => false  即可,原因不明

$list = get_posts(array(
	'showposts' => -1,
	'post_type' => '[......]

Read more

WPML Ajax 無法取得翻譯文章

WPML Ajax 無法取得翻譯文章

使用WPML插件,使用Ajax取得文章,一直都沒辦法取得當前文章,只會取得預設語言文章,在這個問題上花費了好多時間,終於解決了!!!!

推測原因是WPML在 pre_get_posts  這個 hook 會override query_vars值,去對應翻譯文章分類,與得翻譯分類文章,在一般情況下是沒問題的,但使用Ajax要資料的時候,並沒有帶參數給WPML,以致WPML認為是預設語言,在 pre_get_posts  這個 hook 會override query_vars為預設語言,所以無法取得當前翻譯語言的文章。

解[……]

Read more