Salah satu cara yang memungkinkan untuk melakukan modifikasi data ini adalah dengan menggunakan WP-CLI pada terminal.
Pertama-tama, Anda harus memastikan Anda memiliki cadangan dan strategi pemulihan yang solid jika terjadi kesalahan. Anda juga harus menguji prosedur ini di sistem lokal atau pengujian dengan salinan database langsung.
Langkah dasarnya adalah, untuk mengulangi setiap situs jaringan Anda dan mengganti URL setiap situs menggunakan search-replace
perintah WP-CLI .
Inilah bash one-liner:
for SITE in $(wp site list --field=url); do wp search-replace "{$SITE}" "${SITE/http:/https:}" --dry-run --precise --network --verbose; done
Mari kita periksa:
for SITE in $(wp site list --field=url);
Yang satu mulai loop untuk setiap baris output dari perintah di dalam $()
dan menulis setiap baris dalam variabel $SITE
.
$(wp site list --field=url)
Itulah WP-CLI site list
perintah yang memberi Anda daftar semua URL situs dalam jaringan Anda. Jalankan perintah ini semata-mata, Anda mungkin akan melihat sesuatu seperti:
http://your-site.tld/
http://your-site.tld/site2/
http://another-of.your-site.tld/
...
Sekarang
...); do
hanya akan memulai bagian loop dalam.
Perintah inner loop melakukan semua keajaiban (saya membaginya menjadi dua baris menggunakan \
agar mudah dibaca):
wp search-replace "$SITE" "${SITE/http:/https:}" \
--dry-run --precise --network --verbose
Kami memberitahu WP-CLI untuk mencari untuk $SITE
(misalnya https://your-site.tld/
) dan menggantinya dengan versi yang sedikit dimodifikasi: ${SITE/http:/https:}
. Ini adalah pesta Menggantikan tali operasi yang menggantikan http:
dengan https:
. (Jadi menyelesaikan variabel, perintahnya akan terlihat seperti wp search-replace "http://your-site.tdl/" "https://your-site.tld/"
).
search-replace
memiliki banyak opsi yang mungkin dijelaskan dalam dokumentasi . Dalam contoh saya menggunakan ini:
--dry-run --precise --network --verbose
--dry-run
dan --verbose
jelas membantu untuk menguji perintah.
--network
berlaku pencarian dan ganti operasi juga ke tabel jaringan.
--precise
memberitahu WP-CLI untuk menggunakan PHP dan bukannya SQL untuk mencari dan mengganti nilai. Itu memastikan nilai serial untuk tidak rusak.
Akhirnya loop ditutup dengan
; done
Biarkan saya menekankan lagi: menguji ini sebelum Anda mulai menggunakan ini pada produksi. Anda harus memahami cara kerjanya dan apa yang dilakukan WP-CLI. Saya menggunakan WP-CLI sebelumnya untuk melakukan searach tersebut dan mengganti operasi untuk memigrasi multisite ke nama domain lain, tetapi tidak untuk beralih dari http
ke https
.
Mungkin ada beberapa kasus tepi: WP-CLI masih membaca wp-config.php
dan mencoba menemukan «jaringan» yang cocok dalam database dengan menggunakan konstanta di wp-config.php
. Jika Anda memanipulasi satu situs (basis data) tetapi bukan yang lain (konstanta di wp-config.php
) Anda mungkin mendapat masalah. Tetapi untuk kasus Anda, saya pikir itu tidak akan menjadi masalah karena WP biasanya mengandalkan DOMAIN_CURRENT_SITE
dan PATH_CURRENT_SITE
dan mereka tidak akan berubah pula. Tetapi sekali lagi, uji ini menyeluruh.
Dengan sedikit sihir bash, Anda juga dapat membagi lingkaran ini menjadi potongan-potongan 5 atau 10 situs dan melewatinya langkah demi langkah.