web-dev-qa-db-fra.com

Comment configurer Wordpress Multisite sur plusieurs domaines sans plugin?

Comment configurer Wordpress Multisite, configuration de sous-dossiers, sur plusieurs domaines sans plugin?

Par exemple, si j'ai deux domaines, www.domain-one.com et un deuxième, www.domain-two.com, j'aimerais avoir des sites tels que: www.domain-one.cz - site en racine, www.domain-one. cz/anothersite/- site dans le sous-dossier du premier domaine, puis les mêmes possibilités sur le second domaine, est-il possible?

En fait, je pourrais le faire sur plusieurs domaines mais avec le changement d’une condition dans wp-includes/ms-settings.php à la ligne 72:

if ( $blogname != '' && ! in_array( $blogname, $reserved_blognames ) && ! is_file( $blogname ) && $domain != 'www.domain-two.com' )

et pour pouvoir vous connecter à ces sites, vous devez également ajouter du code supplémentaire à settings.php (cela ne semble pas nécessaire pour new wordpress):

if($_SERVER['HTTP_Host'] == 'www.domain-two.com')
    define('COOKIE_DOMAIN', 'www.domain-two.com');

Avec cette solution simple, vous pouvez avoir plusieurs sites mais aucun site avec des sous-dossiers dans ces domaines supplémentaires, vous pouvez avoir des sites de sous-dossiers uniquement pour le domaine principal (et ensuite pour plusieurs domaines supplémentaires).

En fait, s’il n’ya pas d’option permettant de faire cela sans plugin et sans changer le code du noyau, s’il existe une option pour le faire avec un changement de noyau? Ou y at-il un plugin qui peut faire exactement cela? Qu'en est-il de sunrise.php est-il possible avec cela?

4
Roman

Il est important que vous définissiez la constante COOKIE_DOMAIN dans le wp-config.php

define( 'COOKIE_DOMAIN', '' );

La valeur doit être vide, sinon WordPress le définira toujours sur le $current_site->domain de votre réseau et vous ne pourrez vous connecter à aucun autre site.

De core :

       /**
         * @since 2.0.0
         */
        if ( !defined('COOKIE_DOMAIN') && is_subdomain_install() ) {
                if ( !empty( $current_site->cookie_domain ) )
                    define('COOKIE_DOMAIN', '.' . $current_site->cookie_domain);
                else
                        define('COOKIE_DOMAIN', '.' . $current_site->domain);
        }

Vous pouvez maintenant définir un domaine dans les paramètres de chaque site du réseau.

Sceenshot Settings

3
bueltge