web-dev-qa-db-fra.com

Deux (ou plusieurs) TLD parallèles conservés lors de la navigation sur le site/définition dynamique de l'adresse du site?

Je gère un site pour une ONG allemande sous le domaine sub.example.org.
Récemment, j'ai ajouté sub.example.ch pour son spin-off suisse.

Les deux (sous-) domaines pointent vers le même emplacement physique, un WP install ( not multisite).

Je l’ai configuré de telle sorte que sub.example.ch/register, par exemple, affiche correctement le contenu trouvé sous sub.example.org/register.

Cependant, lorsqu'un visiteur suisse navigue sur le site en utilisant des liens réguliers sur son site, il se retrouvera inévitablement dans le domaine "normal", car ceux-ci utilisent l'adresse "WordPress" (ou "adresse du site") définie dans les paramètres généraux. , soit via get_home_url ou get_site_url() (ou leurs équivalents get_bloginfo() de moindre profondeur).

Idéalement , j'aimerais que le visiteur continue à surfer sous le domaine qu'il utilisait pour accéder au site. Par conséquent, je suppose que je devrais en quelque sorte filtrer la valeur de retour des fonctions mentionnées. Un filtre qui, à ma connaissance, n'existe pas.

  1. Est-ce que quelqu'un a de l'expérience avec ce genre de chose et une solution décente à portée de main?

  2. Est-ce que c'est peut-être une idée stupide et que je devrais la laisser partir en premier lieu?

10
Johannes Pille

Vous pouvez filtrer les demandes d'options pour l'hôte.

Dans votre wp-config.php ci-dessous la ligne…

require_once ABSPATH . 'wp-settings.php';

… Ajouter les lignes suivantes:

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() n'est pas disponible plus tôt et vous devriez conserver ce code dans votre wp-config.php. Je ne sais pas s’il existe des effets secondaires ou des cas où cela ne fonctionne pas. Ne devrait pas arriver, mais testez-le à fond.

9
fuxia