Cari & Ganti Pangkalan Data WordPress - Cara Mudah
Terdapat beberapa keadaan di mana kita perlu menukar URL dalam pangkalan data tapak web WordPress kami. Sebagai contoh, kita perlu melakukan ini selepas memindahkan pangkalan data WordPress dari satu tapak, cth. daripada http://acme.com
tapak pengeluaran jauh, kepada http://acme.dev
laman web pembangunan tempatan di komputer kami.
WordPress.org menjadi tuan rumah sejumlah besar plugin, seperti WP DBManager dan WP Migrate DB, dan terdapat juga beberapa alat pihak ke-3 yang membolehkan anda pangkalan data import dengan mudah. Bahagian yang rumit perlu ubah setiap contoh URL dalam pangkalan data.
Selepas memindahkan pangkalan data, URL di dalamnya masih menunjuk ke laman lama, dalam kes ini kepada acme.com
. Anda boleh mencari URL lama di dalam wp_options
jadual, ditetapkan sebagai nilai siteurl
dan rumah
pilihan, dan ia mungkin juga tertanam di beberapa baris dan jadual lain dalam pangkalan data. URL lama ini mungkin menghalang laman web anda daripada berjalan dengan betul, jadi anda perlu ubahnya ke URL baharu, dalam contoh kami kepada acme.dev
.
Pada ketika ini, mengakses tapak pembangunan kami di acme.dev
hanya akan memimpin ke halaman kosong.
Jadi bagaimana kita menukar semua URL ini dalam pangkalan data?
Menjalankan SQL Query
Biasanya, orang akan menjalankan Query SQL berikut yang menggantikan nilai-nilai siteurl
dan rumah
pilihan dalam wp_options
jadual.
UPDATE wp_options SET option_value = replace (option_value, 'http://acme.com', 'http://acme.dev') WHERE option_name = 'home' OR option_name = 'siteurl';
Seterusnya, mereka menggunakan SQL Query yang lain untuk menggantikan semua kejadian URL di wp_posts
jadual, iaitu di post_content
lajur setiap baris.
UPDATE wp_posts SET post_content = replace (post_content, 'http://acme.com', 'http://acme.dev');
Menjalankan pertanyaan ini adalah penyelesaian yang boleh dilaksanakan, namun pada masa yang sama, tidak mudah dilakukan. Ia boleh menjadi saraf-wracking, melihat bagaimana pangkalan data boleh berubah haywire kerana pengawasan mudah dalam pertanyaan.
Memanfaatkan WP-CLI
Satu lagi laluan yang boleh kita lakukan, dan yang saya dapati menjadi alternatif yang lebih berguna, adalah dengan memanfaatkan baris perintah WP-CLI. Ini bermakna anda perlu memasang WP-CLI.
Dengan mengandaikan bahawa anda telah memasang WP-CLI dan mempunyai wp
arahan boleh diakses sebagai alias, menavigasi ke direktori tempat fail laman WordPress anda berada.
Kemudian, jalankan arahan berikut:
wp cari-ganti 'http://acme.com "http://acme.dev
Parameter pertama, 'http://acme.com'
, adalah catatan lama yang akan digantikan dengan yang kedua, 'http://acme.dev'
.
Barisan arahan akan mencari semua jadual dalam pangkalan data, bukan sahaja post_content
lajur dan wp_options
jadual, dan menggantikan setiap contoh kemasukan yang diluluskan melalui parameter arahan.
Seperti yang anda dapat lihat dari tangkapan skrin di atas, sejumlah 225 penggantian telah dibuat. Dan kita telah melakukannya melalui satu baris arahan yang mudah.
Saya fikir ia patut disebut bahawa kita boleh menggunakannya wp cari-ganti
perintah, bukan sahaja untuk menggantikan URL, tetapi sebilangan kecil nilai disimpan dalam pangkalan data juga. Kami juga boleh menghadkan operasi ke dalam jadual tertentu dengan meluluskan nama jadual sebagai parameter keempat, seperti berikut:
wp cari-ganti '.jpg ".webp' wp_posts
Menjalankan arahan di atas, ia hanya akan mencari wp_posts
, jadual yang menyimpan kandungan kami - jawatan, halaman, dan sebagainya - dan gantikan pelanjutan imej dari .jpg
kepada .webp
.
WP-CLI membuat operasi SQL tertindas kelihatan lebih intuitif, dan anda boleh bekerja dengannya dengan cara yang lebih mudah. Sekiranya anda ingin menyesuaikan arahan anda, lihat dokumentasi WP-CLI, yang memberikan anda senarai pilihan untuk melakukan operasi yang lebih maju dengan wp cari-ganti
perintah.