İçeriğe geç
Araçlar

SQL Ara ve Değiştir

Serileştirilmiş verileri bozmadan site URL'nizi değiştirin

Tarayıcınızda çalışır. Hiçbir şey yüklenmez.

Değişiklik

Herhangi bir şey çalıştırmadan önce bunu okuyun

WordPress birçok seçeneği PHP-serialized dizeler olarak saklar ve serileştirilmiş bir dize kendi bayt uzunluğunu kaydeder — s:19:"http://old-site.com". Düz bir SQL değiştirmesi metni değiştirir ama uzunluğu değiştirmez, bu yüzden PHP artık satırı unserialize edemez. Hata vermez. Değer sessizce boşalır.

Kaybedecekleriniz: widget yapılandırması, tema ayarları (theme mods) ve çoğu eklenti ayarı. Bunu genellikle günler sonrasına kadar fark etmezsiniz; o zamana kadar da geri yükleyeceğiniz yedek çoktan yok olmuştur.

Aşağıdaki sorguların wp_options tablosuna kasıtlı olarak dokunmamasının nedeni budur.

Neyi taşıyorsunuz?
search-replace.sql

Önce bir veritabanı yedeği alın. "Almayı düşünün" değil — alın. Bir UPDATE işleminin geri alması yoktur.

SQL Ara ve Değiştir hakkında

Bir WordPress veritabanında yapılan gelişigüzel bir SQL bul-değiştir işlemi, dokunduğu her serileştirilmiş seçeneği bozar; çünkü saklanan dizgi uzunluğu artık eşleşmez. Bu araç güvenli sorguları oluşturur ve hangilerinin güvenli olmadığını tam olarak açıklar.

SSS

Sorular

WordPress site URL'imi bir SQL bul ve değiştir ile değiştirebilir miyim?

Güvenli bir şekilde değil ve bu, WordPress'te en çok paylaşılan kötü tavsiyedir. Birçok seçenek, kendi byte uzunluğunu kaydeden PHP ile serileştirilmiş (serialized) diziler olarak saklanır. Düz bir SQL değiştirme, metni değiştirir ama uzunluğu değiştirmez, bu yüzden PHP satırı sessizce serileştirmeden çıkaramaz (unserialize) ve değer öylece kaybolur — widget ayarlarını, tema modlarını ve eklenti yapılandırmasını da beraberinde götürür.

Bunun yerine ne kullanmalıyım?

WP-CLI: önce 'wp search-replace old new --all-tables --dry-run', sonra --dry-run olmadan. Serileştirmeyi anlar ve uzunluk ön eklerini doğru şekilde yeniden yazar. CLI erişiminiz yoksa, Better Search Replace eklentisi aynı şeyi yönetim panelinden yapar.

GUID sütununu güncellemeli miyim?

Hayır. GUID, bir yazının kalıcı benzersiz tanımlayıcısıdır, bir bağlantı değil ve besleme (feed) okuyucuları buna göre eşleştirir. Onu yeniden yazmak, her aboneye her eski yazıyı yepyeniymiş gibi gösterir. WordPress dokümantasyonu bunu değiştirmemenizi açıkça söyler.