Dwie (lub więcej) równoległe (pod-) TLD, które są zachowywane podczas przeglądania strony / dynamicznie ustawiasz adres strony?


10

W tej domenie prowadzę witrynę dla niemieckiej organizacji pozarządowej sub.example.org.
Niedawno dodałem sub.example.chdo szwajcarskiego podziału.

Obie (pod-) domeny wskazują na tę samą fizyczną lokalizację, instalację WP ( nie na wiele stron ).

Mam taką konfigurację, aby sub.example.ch/registerna przykład poprawnie wyświetlała zawartość znajdującą się pod sub.example.org/register.

Jednak gdy szwajcarski użytkownik przegląda witrynę przy użyciu zwykłych linków na stronie, nieuchronnie znajdzie się w „zwykłej” domenie, ponieważ korzystają one z „adresu WordPress” (lub „adresu strony”) zgodnie z ustawieniami ogólnymi , za pośrednictwem get_home_urllub get_site_url()(lub ich mniej głębokich get_bloginfo()odpowiedników).

Idealnie byłoby, gdyby odwiedzający nadal surfował pod domeną, z której korzystał na tej stronie. Dlatego przypuszczam, że musiałbym w jakiś sposób przefiltrować wartość zwracaną przez wymienione funkcje. Filtr, który, o ile mi wiadomo, nie istnieje.

  1. Czy ktoś ma doświadczenie w tego typu rzeczach i przydatne przydatne rozwiązanie?

  2. Czy to może głupi pomysł i powinienem po pierwsze go odrzucić?

Odpowiedzi:


9

Możesz filtrować żądania opcji dla hosta.

W wp-config.php dolnej linii…

require_once ABSPATH . 'wp-settings.php';

… Dodaj następujące wiersze:

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()nie jest wcześniej dostępny i należy przechowywać taki kod w swoim wp-config.php. Nie wiem, czy są jakieś skutki uboczne lub przypadki, w których to nie działa. Nie powinno się zdarzyć, ale dokładnie go przetestuj.


Na pewno dokładnie go przetestuję. Teraz.
Johannes Pille,

4
12 godzin później: Działa bez wyjątku. To, że wartość musiałaby pochodzić, $_SERVER['HTTP_HOST']jest dość proste, to też byłoby moje podejście. W trakcie odpowiedzi próbowałem wykorzystać bloginfo_urlfiltr z wtyczki. Czy nie wykonać zadanie. Aby jednak umieścić filtrowanie w pliku konfiguracyjnym, próbowałbym po kilku dniach rozważania, jeśli w ogóle. Wynik tego rozwiązania przerósł moje najśmielsze oczekiwania: nie tylko linki ładnie rozwiązują się, dane logowania również działają, a nawet zaplecze się nie dusi! Awesomeness!
Johannes Pille,

1
Obie (pod-) domeny wskazują na tę samą fizyczną lokalizację, instalację WP (nie na wiele stron). Zrób to, musisz zalogować się do usługi hostingowej. Podczas tworzenia subdomeny w domenie należy określić katalog główny dokumentu. Tutaj wybierz tę samą ścieżkę, co twoja główna domena z zainstalowaną WP. Następnie dodaj kod. Działa idealnie, spróbuj pomyśleć o SEO (tagi kanoniczne i alternatywne)
Romain
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.