Massa Temukan & Ganti Database WordPress - Cara Mudah
Ada beberapa kesempatan di mana kita harus melakukannya ubah URL di basis data situs web WordPress kami. Misalnya, kita perlu melakukan ini setelah memigrasi basis data WordPress dari satu situs, mis. dari http://acme.com
lokasi produksi jarak jauh, ke http://acme.dev
situs web pengembangan lokal di komputer kita.
WordPress.org menjadi tuan rumah sejumlah besar plugin, seperti WP DBManager dan WP Migrate DB, dan ada juga sejumlah alat pihak ke-3 yang memungkinkan Anda untuk impor basis data dengan mudah. Bagian yang sulit adalah harus ubah setiap instance URL di dalam basis data.
Setelah memigrasi basis data, URL di dalamnya masih menunjuk ke situs lama, dalam hal ini untuk acme.com
. Anda dapat menemukan URL lama di wp_options
tabel, tetapkan sebagai nilai dari alamat URL
dan rumah
opsi, dan itu mungkin juga tertanam di sepanjang beberapa baris dan tabel lain dalam database. URL lama ini pada akhirnya dapat mencegah situs Anda berjalan dengan baik, jadi Anda harus melakukannya ubah ke URL baru, dalam contoh kita untuk acme.dev
.
Pada titik ini, mengakses situs pengembangan kami di acme.dev
hanya akan memimpin ke halaman kosong.
Jadi bagaimana kita mengubah semua URL ini dalam basis data?
Menjalankan SQL Query
Biasanya, orang akan menjalankan SQL Query berikut yang menggantikan nilai alamat URL
dan rumah
opsi dalam wp_options
meja.
UPDATE wp_options SET option_value = ganti (option_value, 'http://acme.com', 'http://acme.dev') WHERE option_name = 'home' OR option_name = 'siteurl';
Selanjutnya, mereka menggunakan SQL Query lain untuk menggantikan semua kemunculan URL di wp_posts
tabel, yaitu di isi post_content
kolom setiap baris.
UPDATE wp_posts SET post_content = ganti (post_content, 'http://acme.com', 'http://acme.dev');
Menjalankan kueri ini adalah solusi yang bisa diterapkan, namun pada saat yang sama, tidak nyaman untuk dilakukan. Itu bisa jadi sangat menegangkan, melihat bagaimana database bisa menjadi rusak karena pengawasan sederhana dalam kueri.
Memanfaatkan WP-CLI
Rute lain yang bisa kami lakukan, dan yang menurut saya merupakan alternatif yang lebih praktis, adalah dengan meningkatkan baris perintah WP-CLI. Ini berarti Anda harus menginstal WP-CLI.
Dengan asumsi Anda telah menginstal WP-CLI dan memiliki wp
perintah dapat diakses sebagai alias, arahkan ke direktori tempat file situs WordPress Anda berada.
Kemudian, jalankan perintah berikut:
wp search-replace 'http://acme.com "http://acme.dev
Parameter pertama, 'http://acme.com'
, adalah entri lama yang akan diganti dengan yang kedua, 'http://acme.dev'
.
Baris perintah akan mencari semua tabel dalam database, tidak hanya itu isi post_content
kolom dan wp_options
meja, dan ganti setiap instance entri melewati parameter perintah.
Seperti yang dapat Anda lihat dari tangkapan layar di atas, total 225 penggantian telah dilakukan. Dan kami telah melakukannya melalui garis perintah sederhana.
Saya pikir perlu disebutkan bahwa kita dapat menggunakan ganti pencarian-wp
perintah, tidak hanya untuk mengganti URL, tetapi bagian dari nilai disimpan dalam database juga. Kami juga dapat membatasi operasi ke tabel tertentu dengan mengirimkan nama tabel sebagai parameter keempat, sebagai berikut:
wp search-replace '.jpg ".webp' wp_posts
Menjalankan perintah di atas, itu hanya akan mencari wp_posts
, tabel yang menyimpan konten kami - pos, halaman, dll. - dan ganti ekstensi gambar dari .jpg
untuk .webp
.
WP-CLI membuat operasi SQL kusut terlihat lebih intuitif, dan Anda dapat bekerja dengannya dengan cara yang lebih nyaman. Jika Anda ingin menyempurnakan perintah Anda, lihat dokumentasi WP-CLI, yang memberi Anda daftar opsi untuk melakukan operasi yang lebih maju dengan ganti pencarian-wp
perintah.