2017-03-03 36 views
1

私はこのサイトを持っています。 WPML同じスラッグ(URL)異なる言語

私はGRに変更

ページexample.com/watchesにしながら)それは右である example.com/el/watchesにリダイレクトします。

私はexample.com/watches/rolex上だと私はそれがexample.com/el/taxwatches/rolex-elにリダイレクトする言語を変更しようとするが、私はそれだけでexample.comになりたいです/ el/watch/rolex/

税金は私のカスタムタキソノミーです。

rolex-elは、そのタクソノミー内の用語のスラッグです。

誰もこのような問題を経験しましたか?

パーマリンクをもう一度保存してWMPLの設定を確認しようとしましたが、何か間違ったことはありません。

EDIT 1:手動でexample.com/el/watches/rolexに移動した場合、正常に動作します。 example.com/el/watches/rolexexample.com/el/taxwatches/rolex-elの両方の作業です。

EDIT 2:WPMLがスラッグをとっていることから、名前を変更する方法はありますか?

答えて

0

多言語サイトに問題がある人にとっては、URLに「同じスラッグ」を持たせたい(同じようなことはありませんが、そのように見えます)、以下をお読みください。

WPMLはワードプレスコア構造から作成されたスラッグを使用します。まったく同じ名前のスラッグを2つ持つことはできません。デフォルトの言語がENでセカンダリがある場合は、私の場合GRで、1つのスラッグは "myslug"となり、もう1つの "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に "tax"を削除するのに役立ちました。

関連する問題