0

私は 404 カスタム ページを作成しており、すべて問題ありませんが、WPML を使用しているため、文字列をローカライズしています。

これは私のコードの一部です:

<h4><?php _e('You still can\'t find anything?', 'kslang'); ?></h4>
<h5><?php _e('Well, then you probably should give us a wake up call...', 'kslang'); "\n"?></h5>
<h5><?php _e('but be aware who you\'re waking up!', 'kslang');?></h5>
<h5><?php _e('You\'re sure? Well, then...', 'kslang'); ?></h5>
<form>
    <input type="button" value="<?php _e('Contact Us!', 'kslang'); ?>" onClick="window.location.href='http://example.com/contact-us-today'">
</form>
<h5><?php _e('or try the Site Map Below. You\'re also welcome to check out our related projects!', 'kslang'); ?></h5>

今問題は、それは私の

"window.location.href='http://example.com/contact-us-today'"

相対言語にリダイレクトされていません。

ボタンのテキストや残りの文字列のように、href リンクを get テキストでラップすることもできます。

これは機能しません。明らかに、問題はより複雑です。if/else ステートメントを使用する必要がありますか?

正しい言語にリダイレクトする方法を知っている人はいますか? (文字列トランスレータで href リンクを翻訳するという考えで _e を使用しようとしましたが、この場合、php スニペットを挿入するとサイトが壊れるため、これは _e では機能しません)

誰かが入力できることを願っています...

4

1 に答える 1

0

window.location.href を使用して適切な言語バージョンにリダイレクトするには、URL にその言語を含める必要があります。つまり、フランス語の場合は、" http://www.example.com/fr/contact-us-にリダイレクトします。今日」 (ドメインの後に「fr」を付けます)。これは、PHP で現在の WPML 言語を検出し、次のように JavaScript 変数としてエコーすることで動的に実行できます。

//Get current WPML language
global $sitepress;
$language = $sitepress->get_current_language();
//Echo as JS variable
echo "<script>var lang = '".$language."';</script>"

次に、次のようにリダイレクトできます。

window.location.href='http://www.example.com/'+lang+'/contact-us-today';

注:この例では、さまざまな言語の言語フォルダーを使用していることを前提としています。サブドメインまたは言語クエリ パラメータを使用している場合は、それに応じて調整する必要があります。

于 2015-01-22T11:34:02.087 に答える