WordPress 3.9上の多言語プラグインWPMLバグについて(3.1.5b3で修正済)


WPMLは、まだWordPress 3.9の正式版(ベータ版、3.1.5b2で対応中、3.1.5b3で対応済)を出していないため(Status of WPML for WordPress 3.9)、バグが残っているのかなぁとか思います。私の環境だけかもしれませんけどね。

本件は、3.1.5b3で修正されました! やっぱり直接フォーラムにカキカキするのは効果大ですな、これぞオープンソースの強み!
http://wpml.org/forums/topic/second-language-post-not-appears/#post-388634 の通り

以下は、もう備忘録メモですね〜

というか最近までWPML2.6.xを使ってました。有償プラグインなので、WPML3.1.xというメジャーバージョンアップについては、手動入れ替えが必要だったんです!忘れてました・・・。でこれをやっていく過程で気づいたんですよね。

問題

言語ごとに同一スラッグをつかっていた場合、すべてメイン言語に転送されてしまう。

具体例

http://example.com/sample-page (日本語ページ)
http://example.com/en/sample-page (日本語ページの英語翻訳)

があったとすると、http://example.com/en/sample-page (日本語ページの英語翻訳)にアクセスしたら、日本語ページにURL転送されてしまうという問題です。

これ大問題なんですよね。だから本気で調べないとやばいと思って、調べ始めたら運良く再現する状況を見つけました。

原因

そんなことするからダメなんだよ!スラッグが同一なんておかしいでしょ!
ごもっとも!
以前の環境(WPML2.6.x with WordPress 3.8.x)までは、他の言語へ翻訳するってボタンをおした瞬間にスラッグは自動的に「-2」とか別の名前がついてました。今回そういうセーフティーガードがなくなったのか、機能しなくなったかのいずれかだと思います。

対策

スラッグは多言語でも重ならないようなユニークなものに変更するってのが暫定対策です。

つまり、どうせよと?

http://example.com/sample-page (日本語ページ)
http://example.com/en/sample-page-en (日本語ページの英語翻訳)

などスラッグ(sample-page, sample-page-en)を変えればよいということです。

そんな〜、いままでいけていて変更記事が大量にあるよ T_T;

そうですね、私も困ってます。

だから、同一問題で悩んでいる人がフォーラム(WPML.org)に投稿していたので、便乗投稿で報告しておきました。
http://wpml.org/forums/topic/second-language-post-not-appears/#post-387537

早く直るといいなぁ。

2014年4月25日 木谷

広告

WordPress 3.9上の多言語プラグインWPMLバグについて(3.1.5b3で修正済)」への7件のフィードバック

  1. はじめまして!
    初めてWPMLを使って多言語化サイトに挑戦しようとしているのですが
    こちらの件は、カテゴリやタグについても同様ですか?

    JP:http://example.com/category/sample-page/
    EN:http://example.com/en/category/sample-page/
    にしたいですが、出来ますでしょうか?それとも
    EN:http://example.com/en/category-en/sample-page/
    のようにカテゴリやタグにも日本語と被らないように
    ユニークスラッグを付けることになるでしょうか?
    ご教授戴けますと幸いです!

  2. …投稿されたのかどうか分からないので、再度お送りさせて戴きます。
    重複する場合は削除していただけますと幸いです。

    はじめまして!
    初めてWPMLを使って多言語化サイトに挑戦しようとしているのですが
    こちらの件は、カテゴリやタグについても同様ですか?

    JP:http://example.com/category/sample-page/
    EN:http://example.com/en/category/sample-page/
    にしたいですが、出来ますでしょうか?それとも
    EN:http://example.com/en/category-en/sample-page/
    のようにカテゴリやタグにも日本語と被らないように
    ユニークスラッグを付けることになるでしょうか?
    ご教授戴けますと幸いです!

    • いろいろバタバタしていて返事が遅くなりました。

      カテゴリーについても出来ますよ。
      /カテゴリーA/投稿A
      /en/カテゴリーA/投稿Aの英訳

      /カテゴリーA/投稿A
      /カテゴリーA/投稿A?lang=en

      かは設定次第です。

      カテゴリーも翻訳対象ですし、カスタム投稿も設定で1つずつ翻訳対象にできます。
      翻訳対象に設定すれば、カテゴリー欄にも、全言語、日本語、英語など言語が表示され、日本語のカテゴリーに対して英訳カテゴリーを紐付けることができます。

      ですのでわざわざユニークなカテゴリーを作成する必要がないので楽ですよ。

      • もちろん、プラグインの不具合で同一スラッグをカテゴリーにつけていた場合に動作しないバージョンもありました。
        ですのでリスクを避けるなら、category-en のように別名を使うとよいと思います。
        http://wordpress.org/support/topic/wpml-causes-error-queryphp-on-line-2890 
        がそのときにWPMLフォーラムでやり取りしたものですが、このときはWordPressがメジャーバージョンアップした
        時に起こった問題でした。そのようなことがたまーにある感じかなと思います。

  3. コメント下さいまして有難うございます!

    > もちろん、プラグインの不具合で同一スラッグをカテゴリーにつけていた場合に動作しないバージョンもありました。
    > ですのでリスクを避けるなら、category-en のように別名を使うとよいと思います。

    ということは、やはり希望する、
    EN:http://example.com/en/category/sample-page/
    ではなく、カテゴリやタグにも”en”など別スラッグになるように
    EN:http://example.com/en/category-en/sample-page/
    とする方が良いのですね?であれば、わざわざ/en/に格納する必要なさそうな気もするのですが。。。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中