İç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.

The change

Read this before you run anything

WordPress stores many options as PHP-serialized strings, and a serialized string records its own byte length — s:19:"http://old-site.com". A plain SQL replace changes the text but not the length, so PHP can no longer unserialize the row. It does not error. The value just silently becomes empty.

What you lose: widget configuration, theme mods, and most plugin settings. Usually you do not notice until days later, and by then the backup you would have restored is gone too.

This is why the queries below deliberately do not touch wp_options.

What are you moving?
search-replace.sql

Take a database backup first. Not 'consider taking one' — take one. There is no undo for an UPDATE.

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.

FAQ

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.