Saat memulai dengan pemasangan Jaringan baru, langkah pertama adalah instalasi satu situs yang memiliki satu baris tambahan dalam wp-config.php
file:
define( 'WP_ALLOW_MULTISITE', true );
Setelah itu kita harus pergi ke Tools > Network Setup
, masukkan beberapa detail seperti nama jaringan dan email super admin dan akhirnya tekan tombol untuk menjalankan pengaturan.
Langkah selanjutnya muncul sebenarnya adalah dua langkah:
Tambahkan konstanta tambahan ke
wp-config.php
file Andadefine( 'MULTISITE', true ); define( 'SUBDOMAIN_INSTALL', true ); define( 'DOMAIN_CURRENT_SITE', 'example.com' ); define( 'PATH_CURRENT_SITE', '/' ); define( 'SITE_ID_CURRENT_SITE', true ); define( 'BLOG_ID_CURRENT_SITE', true );
- Tambahkan beberapa aturan ke
.htaccess
file Anda .
Karena saya tidak melakukan instalasi satu situs (tidak ada alasan untuk itu lagi), saya ingin menambahkan konstanta tersebut secara dinamis ke wp-config.php
file saya :
define( 'WP_ALLOW_MULTISITE', true );
if ( SOME_CHECK_IF_STEP-1_WAS_PASSED )
{
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );
define( 'DOMAIN_CURRENT_SITE', 'example.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', true );
define( 'BLOG_ID_CURRENT_SITE', true );
}
Jadi saya tidak harus pergi ke wp-config.php
setiap waktu dan mengeditnya lagi.
Hal pertama yang muncul di pikiran saya adalah untuk memeriksa DB untuk {$wpdb->prefix}sitemeta
tabel, tetapi saya tidak ingin melakukan kueri tambahan pada setiap beban situs. Hal ke - 2 yang saya pikirkan adalah memeriksa apakah yang blogs.dir
sudah ada, tapi bukan itu masalahnya.
Pertanyaan: Bagaimana saya bisa menunjukkan bahwa saya sudah melewati langkah pertama pengaturan jaringan dengan cara yang tidak memiliki overhead besar atau menurunkan kinerja.
wp-config
generator.Jawaban:
Saya belum menguji ini, tetapi jika Anda perlu menemukan solusi seperti itu, saya mungkin akan mencoba melakukannya dengan cara berikut dengan menambahkan skrip ke dalam
if ( SOME_CHECK_IF_STEP-1_WAS_PASSED )
kondisi yang Anda jelaskan di atas, yang akan:{$wpdb->prefix}sitemeta
tabel;wp-config.php
-> mengembalikan true.Pekerjaan WP cron akan menulis ulang
wp-config.php
untuk menghilangkan cek sepenuhnya.Dengan cara ini, Anda hanya memiliki permintaan DB tambahan sampai jaringan diatur dan tugas cron melakukan keajaibannya.
Perhatikan bahwa ini sepadan dengan usaha, meskipun ...;)
sumber
wp-config.php
file secara langsung, tapi saya kira itu akan dikunci pada saat itu ...Periksa
wp-admin/network.php
danwp-admin/includes/schema.php
file. Anda dapat membuat kondisi berdasarkan WP_INSTALLING_NETWORKMemperbarui:
sumber
wp-load.php
menarikwp-config.php
sebelumnya, jadiWP_INSTALLING_NETWORK
tidak akan ditentukan. Tetapi bahkan jika itu akan tersedia, itu hanya tersedia selama pengaturan jaringan. Apa yang akan saya lakukan untuk meninggalkan konstanta setelah instalasi telah berjalan?index.php
tarikan./wp-blog-header.php
), yang kemudian menarikwp-load.php
dan dari sanawp-config.php
disebut. Tinjauan umum dapat ditemukan di sini .admin.php
sendiri dipanggil sebelumsetup.php
dannetwork.php
(dan memanggilwp-load.php
dirinya sendiri di awal), jadi konfigurasi sudah berjalan.WP_INSTALLING_NETWORK
mendapatdefine()
memeriksa apakah sudahdefined()
, saya akan membuat diFatal Error
sana. Tolong buktikan saya salah dan berikan tes. :)wp-config.php
file yang dapat ditulis adalah risiko keamanan. Pertimbangkan bahwa Anda memiliki semua detail penting di sana. Saya menunjukkan kepada Anda bahwa tidak mungkin ini bekerja (tanpa memiliki file konfigurasi yang dapat ditulisi). Apa yang saya cari adalah indikator (yang tidak memperlambat sistem) yang dapat saya periksa dan gunakan sebagai saklar. Segala sesuatu yang lain tidak akan berfungsi.Jika setup Anda sama setiap kali (instalasi subdomain), maka Anda mungkin dapat menempelkan seluruh chunk di langkah pertama Anda:
define( 'MULTISITE', true ); define( 'SUBDOMAIN_INSTALL', true ); define( 'DOMAIN_CURRENT_SITE', $_SERVER[ 'HTTP_HOST' ] ); define( 'PATH_CURRENT_SITE', '/' ); define( 'SITE_ID_CURRENT_SITE', true ); define( 'BLOG_ID_CURRENT_SITE', true );
sumber
DOMAIN_CURRENT_SITE
konstanta yang benar yang diberikan WordPress kepada Anda setelah menyelesaikan pengaturan internal.