web-dev-qa-db-fra.com

1 installation Wordpress avec 2 pages: chaque page reçoit un domaine séparé

J'ai 1 WP installation avec 2 sous-pages. Chacune de ces 2 pages devrait avoir un domaine séparé:

Wordpress (domain1.com)

  1. Accueil :: domain1.com
  2. Sous-page (id = 8) :: domain2.com

Est-ce plutôt quelque chose qui se fait dans .htaccess ou est-ce possible dans Wordpress même?

Je souhaite éviter de créer un réseau multi-domaines, car il ne s'agit que de 2 petites pages.

Y at-il une solution de travail pour cela? J'ai trouvé ce post qui avait une sorte de question similaire, mais ne pouvait pas vraiment le suivre: Une installation Wordpress, deux catégories. Chaque catégorie obtient un domaine

Merci! Manuel

1
Manuel

Oui, il est possible que WordPress serve une page d'accueil différente en fonction du domaine de la demande. Vous aurez besoin de faire quelques réglages:

  • Assurez-vous que tous les domaines que vous prévoyez d'utiliser pointent vers le serveur.
  • Sur le serveur, assurez-vous que l'hôte virtuel de chaque domaine pointe vers le répertoire WordPress. Sinon, vous pouvez simplement définir la racine Web par défaut sans avoir à vous soucier de la définition d'hôtes virtuels pour chaque domaine.

La première étape consiste à faire en sorte que WordPress traite les demandes d’un domaine plutôt que du domaine sur lequel il a été installé. Pour ce faire, définissez les constantes WP_HOME et WP_SITEURL dans le fichier wp-config.php pour utiliser l'hôte défini dans la demande:

define('WP_HOME', 'http://' . $_SERVER['HTTP_Host']);
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_Host']);

Ensuite, nous devons déterminer ce que la page d'accueil doit être basée sur la demande. Nous pouvons le faire en filtrant l'option page_on_front:

add_filter('pre_option_page_on_front', function($page_id) {
    switch($_SERVER['HTTP_Host']) {
        case 'www.domain1.com' :
        case 'domain1.com' :
            return $page_id; // Default
        case 'www.domain2.com' :
        case 'domain2.com' :
            return 8; // Override
        default :
            exit; // We're not handling requests for this domain
    }
});

Le code ci-dessus peut être ajouté à votre plugin ou au fichier functions.php de votre thème. Assurez-vous que le filtre renvoie un identifiant de page valide. Le type de message doit être page sinon il ne fonctionnera pas comme prévu.

0
Mathew Tinsley