Domanda

ho cercato nella creazione di una rete di installazione di WordPress. Tutto sta andando abbastanza liscio fino a ottenere al punto in cui il mio layout dominio desiderato non si adatta bene.

mi piacerebbe avere un layout come segue:

blog. *. Stackexchange.com

Così, per esempio, mi piacerebbe avere più siti in una rete che sembrano:

blog.wordpress.stackexchange.com
blog.apple.stackexchange.com
blog. $ site.stackexchange.com

I pensare ho potuto ottenere questo lavoro con alcune regole ri-scrittura creativa, e l'intervento di DNS manuale, ma preferirei avere una configurazione in cui posso passare fuori la creazione di tutto, ma il DNS qualcun altro (che già dispone di un processo per la creazione automatica tutti i sottodomini necessari in DNS)

Dal mio modo di suonare in giro e la lettura WP davvero vuole i siti per essere il dominio di primo livello successivo, quindi nel mio esempio di cui sopra, che vuole il blog WP principale di essere a stackexchange.com e il blog della rete per essere a wordpress.stackexchange.com.

Esiste un modo per raggiungere il mio effetto desiderato o devo solo andare via di fare blog.stackexchange.com/$site?

È stato utile?

Soluzione

Si potrebbe utilizzare il Domain Mapper Plugin per questo. Svantaggio è che dovreste configurare manualmente ogni subblog.

Altri suggerimenti

Si potrebbe fare questo con un file sunrise.php personalizzato. Questo è essenzialmente come la mappatura del dominio plugin funziona, tuttavia pone un front-end abbastanza su di esso. Per qualcosa di personalizzato, è possibile scrivere qualche semplice PHP per fare fondamentalmente la stessa cosa.

L'essenza del multisito comporta capire quale sito per servire. La mappatura plug-Domain fa questo attraverso la creazione di un tavolo wp_domain_mapping, e memorizzare le informazioni in là. Così, quando si riceve una richiesta di xxx.com, sembra in tale tabella e vede che che corrisponde al blog_id 123.

In primo luogo, fare una messa a punto di WordPress, e renderlo multisito. Non importa dove si vive davvero, perché stiamo andando a cambiare tutto questo. Per semplicità, avevo messo a blog.stackexchange.com e ne fanno un tipo di sito sottodirectory (quelli sono più facili). Le sottodirectory creati sarebbero probabilmente le lumache. / Wordpress, / apple, / qualunque cosa.

Quindi sì, per cominciare, si sono infatti facendo si vivono a blog.stackexchange.com/wordpress. Considerate questo l'ambiente di staging. Quando si creano ogni sito, si può fare roba da qui fino a quando si decide di attivare la mappatura.

Per fare dominio mappatura da soli, senza il plugin, si farebbe qualcosa di simile:

Fase uno:. Add define( 'SUNRISE', 'on' ); alla parte superiore del file wp-config.php

Fase due: creare un file sunrise.php nella directory wp-content. Mettere <?php in alto per iniziare con.

Punto tre: Nel file sunrise.php sta per essere la logica per determinare quale sito di carico.

Hai intenzione di basare questo sulla variabile $_SERVER[ 'HTTP_HOST' ]. Come si fa che è esattamente facile: comunque lo si voglia farlo. Se si vuole scrivere solo una regex per cercare '/blog\.(.*)\.stackexchange\.com/' e poi cercare quel po 'nel database, è possibile farlo.

Dal momento che si sta utilizzando lo stesso slug qui come la "directory", non è necessario un tavolo separato. Si può solo guardare nella tabella principale wp_blogs per trovare il sito desiderato. Qualcosa di simile a questo:

$current_blog = $wpdb->get_var( "SELECT blog_id FROM {$wpdb->blogs} WHERE path = '/wordpress/' LIMIT 1" );

Una volta ottenuto il $ current_blog, quindi è necessario il seguente codice:

$current_blog->domain = $_SERVER[ 'HTTP_HOST' ];
$current_blog->path = '/';
$blog_id = $current_blog->blog_id;
$site_id = $current_blog->site_id;
$current_site = $wpdb->get_row( "SELECT * from {$wpdb->site} WHERE id = '{$current_blog->site_id}' LIMIT 0,1" );
$current_site->blog_id = $current_blog->blog_id;

Questa pre-definisce il $ current_blog e $ variabili current_site globali invece di lasciare funzioni MU WordPress' farlo.

Questo sarebbe sufficiente per ottenere il sito attivo e funzionante (dopo aver ottenuto il DNS per punto ad esso e ottenere la roba virtual hosting risolto), tuttavia la maggior parte degli URL statici utilizzati nel codice HTML sarebbe ancora puntare al blog. stackexchange.com/wordpress, dal momento che è lì che il sito sarebbe veramente. Inoltre, la funzione di Canonical URL probabilmente non come l'URL e avrebbe favore usare troppo.

Per porre rimedio a questi problemi, si sarebbe anche probabile vuole pre-definire più degli URL associati al sito. Cose come WP_SITEURL e WP_HOME. Inoltre, WP_CONTENT_URL, WP_PLUGIN_URL e WPMU_PLUGIN_URL. Questo dovrebbe coprire la maggior parte dei casi di URL in fase di regolazione.

Infine, ti consigliamo di impostare il 'COOKIE_DOMAIN'. Dal momento che è probabile che desidera gli account di accesso di essere condivisi in tutta la cosa, è possibile impostare a stackexchange.com, o anche di più se non si desidera che siano gli accessi condivisi.

Se si vuole parlare di integrare il normale sistema di StackExchange login in WordPress, posso rispondere a domande su anche questo, ma sarebbe un po 'più dettagliata di una risposta. :)

Non esitate a scrivermi se volete più aiuto con questo. Sono contento di assistere:. Otto a wordpress.org

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top