Menyiapkan jaringan wordpress dengan domain tingkat ketiga


11

Saya telah mencari cara untuk menginstal jaringan WordPress. Semuanya berjalan cukup lancar sampai saya mencapai titik di mana tata letak domain yang saya inginkan tidak pas.

Saya ingin memiliki tata letak sebagai berikut:

blog. *. stackexchange.com

jadi misalnya, saya ingin memiliki beberapa situs dalam jaringan yang terlihat seperti:

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

Saya pikir saya bisa mendapatkan ini bekerja dengan beberapa aturan menulis ulang kreatif, dan intervensi DNS manual tapi saya lebih suka memiliki pengaturan di mana saya bisa menyerahkan pembuatan segalanya kecuali DNS ke orang lain (kami sudah memiliki proses untuk secara otomatis membuat semua sub-domain yang diperlukan dalam DNS)

Dari saya bermain-main dan membaca WP benar-benar ingin situs menjadi domain tingkat berikutnya, jadi dalam contoh saya di atas, ia ingin blog WP utama berada di stackexchange.com dan blog jaringan berada di wordpress.stackexchange.com.

Apakah ada cara untuk mencapai efek yang saya inginkan atau haruskah saya mengikuti rute blog.stackexchange.com/$site?


2
Saya cukup yakin Anda harus menggunakan aturan penulisan ulang kreatif dan intervensi DNS manual. Saya juga cukup yakin ini adalah desain-by-sehingga Anda tidak dapat menyerahkan penciptaan segalanya kecuali DNS untuk <del> saya</del> <ins> orang lain </ins> ... peluit </ sarkasme> (:
Rebecca Chernoff

Saya telah menambahkan hadiah dengan harapan bahwa seseorang datang dengan panduan langkah demi langkah yang bagus sehingga Zypher dapat menghabiskan lebih banyak waktu untuk khawatir tentang menjaga SE dan lebih sedikit waktu melihat ke dalam blog komunitas.
tidak ada yang

Jawaban:


3

Anda bisa menggunakan plugin Domain Mapper untuk ini. Kekurangannya adalah Anda harus mengonfigurasi setiap subblog secara manual.


Menarik, apakah itu mengarahkan atau hanya menyajikan konten? Saya kira apa yang saya coba tanyakan adalah apakah bilah alamat berubah untuk pengguna akhir?
Zypher

@ Zypher Tidak, ini hanya melayani konten.
tidak ada yang

1
Tutorial untuk menggunakan plugin: ottopress.com/2010/... Penting: itu tanpa masalah, ketika Anda menginstal WP dan mengaktifkan plugin dan setelah ini mengimpor data atau sistem moigrate; tidak mudah untuk menambahkan plugin ini setelah blog memiliki kehidupan sebelum pemetaan domain. itu juga memberikan plugin lain untuk membuat pekerjaan di wp backend tawaran sedikit lebih mudah. wordpress.org/extend/plugins/networks-for-wordpress
bueltge

karena kurangnya alternatif, miliki +150 rep.
tidak ada yang

1

Anda dapat melakukan ini dengan file sunrise.php yang dikustomisasi. Ini pada dasarnya cara kerja plugin pemetaan domain, namun menempatkan ujung depan yang cantik di atasnya. Untuk sesuatu yang khusus, Anda dapat menulis beberapa PHP sederhana untuk melakukan hal yang pada dasarnya sama.

Inti dari multisite melibatkan mencari tahu situs apa yang akan dilayani. Plugin pemetaan Domain melakukan ini dengan membuat tabel wp_domain_mapping, dan menyimpan informasi di sana. Jadi ketika mendapat permintaan untuk xxx.com, itu terlihat di tabel itu dan melihat bahwa itu sesuai dengan blog_id 123.

Pertama, buat pengaturan WordPress, dan buat multisite. Tidak masalah di mana itu benar-benar hidup, karena kita akan mengubah semua itu. Untuk mempermudah, saya akan meletakkannya di blog.stackexchange.com dan menjadikannya situs tipe subdirektori (lebih mudah). Subdirektori yang dibuat kemungkinan adalah siput. / wordpress, / apple, / terserahlah.

Jadi ya, untuk memulainya, Anda memang membuatnya langsung di blog.stackexchange.com/wordpress. Pertimbangkan ini lingkungan pementasan Anda. Saat Anda membuat setiap situs, Anda dapat melakukan hal-hal di sini sampai Anda memutuskan untuk mengaktifkan pemetaan.

Untuk melakukan pemetaan domain sendiri, tanpa plugin, Anda akan melakukan sesuatu seperti ini:

Langkah satu: tambahkan define( 'SUNRISE', 'on' );ke bagian atas file wp-config.php Anda.

Langkah dua: buat file sunrise.php di direktori konten-wp. Letakkan <?phpdi bagian atas untuk memulai.

Langkah tiga: Di file sunrise.php akan menjadi logika Anda untuk menentukan situs apa yang akan dimuat.

Anda akan mendasarkan ini pada $_SERVER[ 'HTTP_HOST' ]variabel. Cara Anda melakukannya sebenarnya mudah: namun Anda ingin melakukannya. Jika Anda hanya ingin menulis regex untuk dicari '/blog\.(.*)\.stackexchange\.com/'dan kemudian mencari bit itu di database, Anda bisa melakukannya.

Karena Anda menggunakan siput yang sama di sini sebagai "subdirektori", Anda tidak perlu tabel terpisah. Anda bisa melihat di tabel wp_blogs utama untuk menemukan situs yang Anda butuhkan. Sesuatu yang mirip dengan ini:

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

Setelah Anda memiliki $ current_blog, maka Anda memerlukan kode berikut:

$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;

Ini pra-mendefinisikan variabel global $ current_blog dan $ current_site bukannya membiarkan fungsi MU WordPress melakukannya.

Ini akan cukup untuk membuat situs aktif dan berfungsi (setelah mendapatkan DNS Anda untuk menunjuk ke sana dan menyelesaikan hal-hal hosting virtual), namun sebagian besar URL statis yang digunakan dalam kode HTML masih akan mengarah ke blog.stackexchange.com / wordpress, karena di situlah situs itu akan benar-benar. Juga, fungsi URL Canonical mungkin tidak suka URL dan akan mengarahkan Anda juga.

Untuk mengatasi masalah ini, Anda mungkin juga ingin menentukan beberapa URL yang terkait dengan situs. Hal-hal seperti WP_SITEURL dan WP_HOME. Juga, WP_CONTENT_URL, WP_PLUGIN_URL, dan WPMU_PLUGIN_URL. Itu harus mencakup sebagian besar kasus URL yang sedang disesuaikan.

Terakhir, Anda ingin mengatur 'COOKIE_DOMAIN'. Karena Anda mungkin ingin login dibagikan secara keseluruhan, Anda bisa mengaturnya ke stackexchange.com, atau bahkan lebih tinggi jika Anda tidak ingin login itu dibagikan.

Jika Anda ingin berbicara tentang mengintegrasikan sistem login stackexchange normal ke WordPress, saya dapat menjawab pertanyaan itu juga, tetapi itu akan sedikit lebih rinci dari sebuah jawaban. :)

Jangan ragu untuk mengirim email kepada saya jika Anda ingin bantuan lebih lanjut dengan ini. Senang membantu: otto di wordpress.org.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.