web-dev-qa-db-fra.com

Comment utiliser un domaine différent pour les sous-domaines dans WP Multisite?

J'ai un WordPress Network multisite. J'aimerais avoir mon site principal sur un domaine séparé à mes sous-domaines.

Ce que je veux dire par ceci est, par exemple, mymainsite.com Sur le site principal, mais mes sous-domaines sont basés sur un autre domaine, subdomains.com, tel que example1.subdomains.com, example2.subdomains.com, etc.

J'ai lu sur le mappage de domaine et je sais que vous pouvez faire des sous-domaines, puis changer l'URL du site en correspondance, mais j'exige que WordPress le fait automatiquement pour que les utilisateurs s'inscrivent et enregistrent des sites, Cela le crée sous subdomains.com automatiquement.

Est-ce possible dans un fichier WordPress Installation, ou devrai-je faire deux installations séparées?

2
Addesign Space

Établissons la base: il est possible d'avoir le site principal de l'exemple-domain-x.com et de tous les sous-domaines sous-domaines dans l'exemple-domaine-y.com. Vous venez d'ajouter des sous-domaines1.example-domain-y.com (ou sous-domaine2.example-domain-y.com, sous-domaine3.example-domain-y.com) Comme si vous ajoutez un domaine Bare ou WWW dans le panneau de mappage de domaine ( URL contenant wp-admin/network/settings.php?page=dm_domains_admin).

annotated domain mapping screen in a WordPress Multisite

Pour atteindre le même programme, vous pouvez accrocher une fonction à wp_normalize_site_data Filtre et modifiez le domaine dans la matrice de données.

add_filter('wp_normalize_site_data','wpse38196_wp_modify_domain_new_site');

function wpse38196_wp_modify_domain_new_site($data){
    // $data is an array, the same from wp_insert_site. See https://developer.wordpress.org/reference/functions/wp_insert_site/
    $original_domain = $data['domain'];x§   
    $data['domain'] = str_replace('mymainsite.com', 'subdomains.com', $data['domain']);
    return $data;
}

Je présume que vous êtes au courant, mais dans tous les cas, vous devrez également veiller à la configuration d'un nouveau domaine et de certificats SSL dans votre serveur HTTP (c'est-à-dire Apache, NGinx), tout proxy inverse (par exemple NGinx, vernis, Cloudflare) et Serveur dns. Cela pourrait être plus difficile à faire de manière proprogmatique, y compris parce que les étapes de modification en fonction de la configuration.

3
Celso Bessa