WPML Ajax 無法取得翻譯文章

WPML Ajax 無法取得翻譯文章

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

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

解決方法:

一般Call Ajax的url:

<?php echo admin_url("admin-ajax.php"); ?>

在 url 後方加一個參數 lang,明確定義當前語言,就可解決這問題

<?php echo admin_url("admin-ajax.php?lang=". ICL_LANGUAGE_CODE); ?>

參考:

發佈留言

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

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