2017-03-03 115 views
1

我有這個網站:WPML相同蛞蝓(URL)不同的語言

example.com/watches(手錶是一個自定義後型)

有兩種可用的語言:EN(默認語言),GR 。

當我更改爲GR(同時頁example.com/watches) 它重定向到example.com/el/watches這是正確的。

當我在example.com/watches/rolex,我試圖改變它重定向語言example.com/el/taxwatches/rolex-el,但我想這只是爲了example.com/el /手錶/ rolex/

taxwatches是我的自定義分類。

rolex-el是該分類中的術語的slu slu。

有沒有人遇到過這樣的問題?

我試圖再次保存永久鏈接,並檢查我的WMPL設置,但我看不出什麼問題。

編輯1:如果我手動去example.com/el/watches/rolex它會正常工作。 兩個example.com/el/watches/rolexexample.com/el/taxwatches/rolex-el工作。

編輯2:從我瞭解WPML需要的蛞蝓,有沒有辦法改變它,所以它需要的名字嗎?

回答

0

好了,所以對於具有任何多語言網站的問題 - 而是想在網址中的「同蛞蝓」(決不會相同蛞蝓 - 但是要像她那樣)閱讀下面的。

WPML使用它們從WordPress核心結構創建蛞蝓 - 你不能有兩個蛞蝓用完全相同的名稱。如果默認語言是EN,並且您有第二個(在我的情況下爲GR),則一個slu is將是「myslug」,另一個是「myslug-gr」(您可以通過WPML設置自定義此「-gr」)。

的functions.php您可以過濾創建你的語言切換時被解僱了「wpml_ls_filter」功能。如下

代碼:

add_filter('icl_ls_languages', 'wpml_ls_filter'); 

function wpml_ls_filter($languages) { 

    foreach ($languages as $lang_code => $language) { 

     $mTempString = $languages[$lang_code]['url']; 

     echo $mTempString; // HERE 

     // If "tax" is found in that string, replace it with "" - remove it. 
     if (strpos($mTempString, "tax") !== false) { 

       $languages[$lang_code]['url'] = str_replace("tax", "", $mTempString); 
     } 

    } 
return $languages; 
} 

以上echo是怎麼回事時,按下每當你訪問一個網頁/後向您展示每種語言按鈕創建的URL(你可以對其進行操作)。

我還沒有寫完整的解決方案,因爲這真的取決於你想要做什麼。例如,上面的代碼幫助我實現了刪除「稅收」,如果在URL中找到。