Saya telah membuat situs di WordPress di mesin pengembangan kami. Dalam tema yang kami gunakan ada banyak zona widget untuk menampilkan teks di (bilah samping dan halaman depan). Saya telah menggunakan widget Teks sederhana di semua zona ini untuk menaruh informasi tampilan kami.
Ketika saya memigrasikan situs ke produksi, saya menggunakan plugin WP-DB-Backup untuk mengambil snapshot dari database. Saya kemudian mengedit file .sql yang dihasilkan untuk memperbarui semua jalur file dan referensi URL untuk menunjuk ke situs produksi kami.
Setelah membuat database, situs web, dan menyalin semua file ke situs produksi, saya menjalankan file .sql dari prompt perintah mysql untuk mengimpor data ke dalam database baru.
Namun, ketika saya pergi ke lokasi produksi, beberapa teks muncul dan sebagian tidak. Ketika saya melihat ke bagian widget situs, widget teks tidak ada di beberapa zona widget. Widget teks bahkan tidak terlihat di zona "Widget Tidak Aktif", mereka tidak ada di sana.
Saya bahkan telah mencoba mengulangi proses menggunakan plugin BackWPup, memperhatikan bahwa sintaks SQL berbeda ketika membuang database.
Mengapa saya kehilangan data widget teks selama impor?
Jawaban:
Di sinilah masalah Anda:
Kamu tidak bisa melakukan itu WordPress menyimpan banyak opsi sebagai "data berseri", yang berisi konten string hal-hal dan panjangnya . Jadi ketika Anda memodifikasi URL dan panjangnya berubah, maka data bersambung tidak lagi benar, dan PHP menolaknya.
Masalah jangka panjangnya adalah, pada dasarnya, Anda salah melakukannya. Jika Anda menyiapkan situs pengembangan yang datanya dimigrasikan, maka URL tersebut harus memiliki URL yang sama persis dengan situs produksi Anda. Anda dapat mengedit file HOSTS secara manual untuk memberikan domain IP (seperti example.com) alamat IP yang berbeda (seperti 127.0.0.1) dan dengan demikian URL "produksi" akan menjadi situs pengembangan, hanya untuk Anda. Kemudian Anda dapat membuat data dan tautan serta segala sesuatu lainnya menggunakan URL produksi itu, dan ketika Anda memigrasikan data, tidak ada yang harus diubah.
Namun, dalam jangka pendek, jangan gunakan pencarian / ganti teks sederhana pada file SQL. Seperti yang telah Anda temukan, ini merusak banyak hal.
Dan sementara saya ragu untuk menyarankannya, ada cara untuk mengubah kode inti WordPress untuk menangani serialisasi yang rusak ini. Anda harus memodifikasi file wp-include / functions.php, dan mengubah fungsi maybe_unserialize () menjadi ini:
Ini BUKAN solusi jangka panjang yang layak. Seharusnya hanya digunakan untuk membangunkan Anda dan bekerja sekarang. Dalam jangka panjang, Anda harus memperbaiki proses pengembangan Anda sehingga Anda tidak harus melakukan semacam ini URL untuk memulai.
sumber
most famous worst code
hadiah harus tidak terlihat lagi.Untuk mengatasi masalah ini, saya selalu menggunakan alat Serialized Search & Replace WordPress yang disediakan di sini. Ini berfungsi dengan baik tanpa masalah. Saya telah menggunakan ini sejak lama pada semua persyaratan migrasi situs saya. Ini benar-benar mengatasi masalah dengan migrasi basis data pengembangan ke produksi.
https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
sumber
http://localhost/Me/site_name
olehhttp://site.dev
(dari satu host lokal ke yang lain) menggunakan v 3.0.0 saya kehilangan widget dan posisi menu saya cukup aneh. Jadi mungkin masalah ini terkait dengan panjang string juga.localhost/Me/site_name
dengansite.dev
.Jawaban Otto tepat. Saya juga menemukan ini dengan cara yang sulit.
Namun, saya berhasil mengatasi ini menggunakan skrip keren di http://spectacu.la/search-and-replace-for-wordpress-databases/
Untuk memigrasi wordpress Anda dan ke url / nama domain baru, lakukan hal berikut:
sumber
OP terlalu bersemangat ketika melakukan pencarian-dan-ganti pada file ekspor database, dan akhirnya mengubah kejadian "wp_" dalam beberapa data serial. Solusinya adalah untuk menjadi lebih pelit dalam pencarian-dan-ganti dengan memasukkan backtick dalam ekspresi reguler, dan kemudian secara manual memperbarui kunci yang tersisa dalam database setelah impor.
Jika Anda memigrasi dan mengubah awalan, dan menyukai pendekatan yang lebih manual, lakukan hal berikut (ini hanya membahas masalah OPs dan tidak berurusan dengan memperbarui URL situs)
sumber
Saya menggunakan plugin WP Migrate , penyihir menggantikan patch http dan folder. Saya mendapat satu masalah saat mengimpor, tetapi memutuskan menempatkan baris berikut di bagian atas sql yang dihasilkan:
Saya juga mencoba dengan alat Pencarian dan Ganti (v2.1) yang dijawab oleh @Yoav, tetapi masih merusak data serial saya.
sumber