サイトをサーフィンするときに保持される2つ(またはそれ以上)の並列(サブ)TLD /動的にサイトアドレスを設定しますか?


10

ドメインの下でドイツのNGOのサイトを運営していますsub.example.org
最近、sub.example.chスイスのスピンオフを追加しました。

両方の(サブ)ドメインが同じ物理的な場所、つまりWPインストール(マルチサイトではない)を指しています。

sub.example.ch/registerたとえば、で見つかったコンテンツが正しく表示されるように設定していますsub.example.org/register

ただし、スイスの訪問者が通常のオンサイトリンクを使用してサイトをサーフィンする場合、一般的な設定で定義されている「WordPressアドレス」(または「サイトアドレス」)を利用するため、必然的に「通常の」ドメインになります。 、get_home_urlまたはget_site_url()(またはそれらのそれほど深くないget_bloginfo()同等物)を介して。

理想的には、訪問者がサイトにアクセスするために使用していたドメインでサーフィンを続けてほしいです。したがって、私は前述の関数の戻り値を何らかの形でフィルタリングする必要があると思います。私の知る限りでは存在しないフィルター。

  1. 誰かがこのようなことの経験があり、適切な解決策が便利ですか?

  2. これは馬鹿げた考えかもしれませんが、そもそも手放す必要がありますか?

回答:


9

ホストのオプション要求をフィルタリングできます。

あなたのwp-config.php の行で…

require_once ABSPATH . 'wp-settings.php';

…次の行を追加します。

add_filter( 'pre_option_home', 'set_current_host' );
add_filter( 'pre_option_siteurl', 'set_current_host' );

function set_current_host()
{
    return 'http://' . $_SERVER['HTTP_HOST'];
}

add_filter()以前は利用できませんwp-config.php。そのようなコードをに保持する必要があります。副作用があるのか​​、うまくいかないのかわかりません。発生しないはずですが、十分にテストしてください。


必ず徹底的にテストします。今。
Johannes Pille

4
12時間後:例外なく動作します。価値を生み出さなければならないというの$_SERVER['HTTP_HOST']はかなり単純明快で、それも私のアプローチでした。これが答えられている間、私はbloginfo_urlプラグインからフィルターを利用しようとしました。仕事をしなかった。ただし、フィルタリングを構成ファイルに入れるには、考えていたとしても、何日か考えただけでした。このソリューションの結果は、私の予想をはるかに上回っていました。リンクが適切に解決されるだけでなく、ログイン認証情報も機能し、バックエンドでさえ機能しません。すごい!
Johannes Pille、2013

1
両方の(サブ)ドメインが同じ物理的な場所、つまりWPインストール(マルチサイトではない)を指しています。それを行うには、ホスティングサービスにログインする必要があります。サブドメイン、ドメインを作成するときは、ドキュメントルートを指定する必要があります。ここでは、WPがインストールされているメインドメインと同じパスを選択します。次に、コードを追加します。完璧に機能するように、SEO(正規タグと代替タグ)について考えてみてください
Romain
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.