Deux (ou plus) TLD (sous-) parallèles qui sont conservés lors de la navigation sur le site / définir dynamiquement l'adresse du site?


10

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

Les deux (sous-) domaines pointent vers le même emplacement physique, une installation WP ( pas multisite).

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

Cependant, lorsqu'un visiteur suisse surfe sur le site en utilisant des liens réguliers sur le site, il se retrouvera inévitablement sur le domaine "régulier", car ceux-ci utilisent l '"adresse WordPress" (ou "adresse du site") telle que définie dans les paramètres généraux. , via get_home_urlou get_site_url()(ou leurs get_bloginfo()équivalents moins profonds ).

Idéalement , j'aimerais que le visiteur continue de surfer sous le domaine qu'il a utilisé 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. Quelqu'un at-il de l'expérience avec ce genre de chose et une solution décente à portée de main?

  2. Est-ce peut-être une idée stupide et je devrais le laisser aller en premier lieu?

Réponses:


9

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

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

require_once ABSPATH . 'wp-settings.php';

… Ajoutez 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 devez conserver ce code dans votre wp-config.php. Je ne sais pas s'il y a des effets secondaires ou des cas où cela ne fonctionne pas. Cela ne devrait pas arriver, mais testez-le soigneusement.


Je vais le tester à fond pour sûr. Maintenant.
Johannes Pille

4
12 heures plus tard: Fonctionne sans exception. Que la valeur devrait provenir $_SERVER['HTTP_HOST']est assez simple, cela aurait été mon approche aussi. Pendant que je recevais une réponse, j'essayais d'utiliser le bloginfo_urlfiltre d'un plugin. N'a pas fait le travail. Pour mettre le filtrage dans le fichier de configuration, cependant, j'aurais essayé après des jours de réflexion uniquement, voire pas du tout. Le résultat de cette solution a dépassé mes attentes les plus folles: non seulement les liens se résolvent bien, les informations d'identification de connexion fonctionnent également et même le back-end ne s'étouffe pas! Awesomeness!
Johannes Pille

1
Les deux (sous-) domaines pointent vers le même emplacement physique, une installation WP (pas multisite). Pour ce faire, vous devez vous connecter à votre service d'hébergement. Lorsque vous créez un sous-domaine, domaine, vous devez spécifier une racine de document. Ici, sélectionnez le même chemin que votre domaine principal avec WP installé dessus. Ajoutez ensuite le code. Fonctionne parfaitement, essayez de penser au référencement (balises canoniques et alternatives)
Romain
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.