Lompat ke konten
Tools

SQL Cari & Ganti

Ubah URL situs Anda tanpa merusak data terserialisasi

Berjalan di browser kamu. Tidak ada yang diunggah.

Perubahannya

Baca ini sebelum Anda menjalankan apa pun

WordPress menyimpan banyak opsi sebagai string PHP-serialized, dan string yang di-serialize mencatat panjang byte-nya sendiri — s:19:"http://old-site.com". Penggantian SQL biasa mengubah teksnya tetapi tidak mengubah panjangnya, sehingga PHP tidak lagi bisa meng-unserialize baris tersebut. Ini tidak memunculkan error. Nilainya begitu saja menjadi kosong tanpa peringatan.

Yang hilang: konfigurasi widget, theme mods, dan sebagian besar pengaturan plugin. Biasanya Anda tidak menyadarinya sampai beberapa hari kemudian, dan pada saat itu backup yang tadinya bisa Anda pulihkan pun sudah ikut hilang.

Inilah sebabnya kueri di bawah ini sengaja tidak menyentuh wp_options.

Apa yang sedang Anda pindahkan?
search-replace.sql

Buat cadangan basis data terlebih dahulu. Bukan 'pertimbangkan untuk membuatnya' — buatlah. Tidak ada undo untuk sebuah UPDATE.

Tentang SQL Cari & Ganti

Cari-dan-ganti SQL yang naif pada basis data WordPress merusak setiap opsi terserialisasi yang tersentuh, karena panjang string yang tersimpan tidak lagi cocok. Alat ini menghasilkan kueri yang aman, dan menjelaskan dengan tepat mana yang tidak.

FAQ

Pertanyaan

Bisakah saya mengubah URL situs WordPress dengan find and replace SQL?

Tidak dengan aman, dan ini adalah saran buruk yang paling banyak dibagikan di dunia WordPress. Banyak opsi disimpan sebagai string ter-serialize PHP yang mencatat panjang byte-nya sendiri. Replace SQL biasa mengubah teksnya tapi bukan panjangnya, jadi PHP diam-diam gagal meng-unserialize baris itu dan nilainya begitu saja hilang — membawa serta pengaturan widget, theme mods, dan konfigurasi plugin.

Apa yang sebaiknya saya pakai sebagai gantinya?

WP-CLI: 'wp search-replace old new --all-tables --dry-run' dulu, lalu tanpa --dry-run. Ia memahami serialisasi dan menulis ulang prefix panjangnya dengan benar. Kalau kamu tidak punya akses CLI, plugin Better Search Replace melakukan hal yang sama dari admin.

Haruskah saya mengupdate kolom GUID?

Tidak. GUID adalah identifier unik permanen untuk sebuah post, bukan link, dan feed reader mengandalkannya. Menulis ulangnya membuat setiap subscriber melihat setiap post lama sebagai baru sama sekali. Dokumentasi WordPress secara tegas menyatakan jangan mengubahnya.