web-dev-qa-db-ja.com

Qtranslateの多言語パーマリンク

私はそれを多言語サイトにするために私のWordPressサイトにqtranslateプラグインを使っています。

今私はのような要件を持っています

英語の場合、URLはwww.sitename.com/contact-enのようになります。フランス語の場合、URLはwww.sitename.com/fr/contact-frのようになります。

どうすればこれを達成できますか? (qTranslateは使用されているプラ​​グインです)

注:間に投稿IDがあってはいけません

https://wordpress.stackexchange.com/questions/24061/multilingual-permalinks-qtranslate の投稿のとおり私は http://www.3dolab.net/en/qtranslateslug-plugin-widget を試しました]しかし、「ページが見つかりません」というエラーが発生しています。そのページの29番目のコメントに従って、作者がそのプラグインの改良をやめたようです。

4
Beniston

"qtranslateslug-plugin-widget"プラグインをスラッグテーブルにスラグを格納するために管理者側で動作させることで、私は自分のコードをユーザー側に置きました。

wp-blog-header.phpページで、wp-load.phpファイルを含める直前に自分のコードを追加しました。私は$_SERVER['REQUEST_URI']からURLを取り出し、その中のスラッグと言語を使用して投稿名を検索し、変更されたURI to $_SERVER['REQUEST_URI']を適切に割り当てました。

例えば:

編集する前に:$_SERVER['REQUEST_URI'] = '/fr/french-slug';

編集後:$_SERVER['REQUEST_URI'] = '/post-name';

もう少し詳しく説明しましょう。

  1. 変数に$_SERVER['REQUEST_URI']を代入する

  2. スラグをスラッシュで爆発させる(/

  3. "qtranslateslug-plugin-widget"プラグインが使用しているスラッグデータベーステーブルのスラッグをチェックし、そこから投稿IDを取得します。

  4. 投稿IDを使用して投稿テーブルから投稿名を取得します。

  5. 上記の例で示したように、それを分解してください。

  6. それを$_SERVER['REQUEST_URI']に割り当てます

0
Beniston

http://wordpress.org/plugins/qtranslate-slug/ をご覧ください。

QtranslateはNiceプラグインですが、残念ながら今日は時代遅れです。 Qtranslate Slug はQTranslateのアドオンです。これはパーマリンクの翻訳のサポートを追加し、WordPress 3.0以降のQTranslateの欠陥を修正しました。

0
leymannx

管理パネルのqTranslate設定で詳細オプションを開き、ドメイン名の後に言語プレフィックスを使用するためのラジオボタンをチェックします。私はあなたがフランス語のプラグインの言語設定に記載されていることを正しいと思います。それ以降は日付が正しく表示されないことがありますので、php date関数を使って特定の言語設定でそれを修正してください(言語の編集)。 j F.のようにru接頭辞が同じ方法で配置されているminexrussia.com/2011でプライマーを参照してください。接頭辞を避けるには、デフォルトの言語として英語を選択し、デフォルトの言語の接頭辞を表示しないように詳細オプションの設定をチェックします。プラグイン設定で、enとfr以外の他のすべての言語を削除することをお勧めします。

0
ommunist