2017-03-03 44 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中找到。