言語のカスタムパーマリンク構造の作成


9

フラグアイコンをクリックすると、2文字の言語コード(nl、deなど)を含む1年間のCookieが設定される、単純な多言語システムを作成しました。

wpアクションにフックしてCookieの値を読み取り、次にthe_titlethe_contentフィルターを使用して正しい言語を表示します(ページ/投稿の編集画面のメタボックスを介して異なる言語が入力されます)。

これはすべてうまくいきますが、2言語の言語コードがドメイン名と通常のパーマリンク構造の間にあるため、言語バージョンごとにパーマリンクが必要です。私は%postname%パーマリンク構造を使用しているため、以下のすべてが有効になります。

http://example.com/nl/about-us
http://example.com/de
http://example.com/fr/2012/03
http://example.com/es/this-is-a-post-title

現在の言語が英語の場合、2文字のコードは使用できません(通常のパーマリンクになります)。

これまでのところ、query_varsフィルターを使用してと呼ばれるクエリ変数を追加しlangましたが、それは私が得たものではなく、次のステップが何かはわかりません。アドバイスは大歓迎です!



1
@ l2aelbaに感謝します。その答えは、いくつかの小さな変更で必要なものに十分近いものです。
Simon Blackbourn 2013年

あなたはこのまたは単に1つのウェブサイトのためのサブドメイン持っていますか
kennethjfalbous

単一のウェブサイト
Simon Blackbourn 2014年

回答:


1

あなたの質問は自分で答えるほど複雑ですが、qTranslateプラグインをインストールすることをお勧めします。プラグインの説明が言うように:

3つのモードのいずれかを選択して、URLをきれいでSEO対応にします。-どこでも互換性がある?lang = en、シンプルで美しい/ en / foo /、または素敵で端正なen.yoursite.com

したがって、プラグインのコードを調べて、その動作を確認するか、まったく使用しないでください。


1
リンクをありがとう、私はコードを分解できるかどうかを確認します。
Simon Blackbourn 2013年

-1

これは私が使用しているフィルターです:

function em_wpml_dbem_taxonomy_category_slug($option){
$lang = get_bloginfo('language');

if( $lang === 'es-ES' ){
    $option = 'eventos/categorias';
} else {
    $option = 'events/categories';
}
return $option;
}
add_filter('pre_option_dbem_taxonomy_category_slug', 'em_wpml_dbem_taxonomy_category_slug');

2
回答に説明を追加してください-ありがとうございます。
Nicolai
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.