Məzmuna keç
Alətlər

SQL Axtar və Əvəz Et

Serializasiya edilmiş məlumatları korlamadan sayt URL-nizi dəyişin

Brauzerinizdə işləyir. Heç nə yüklənmir.

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 Axtar və Əvəz Et haqqında

WordPress verilənlər bazasında sadəlövh SQL axtar-və-əvəz et əməliyyatı toxunduğu hər serializasiya edilmiş seçimi sındırır, çünki saxlanılan sətir uzunluğu artıq uyğun gəlmir. Bu, təhlükəsiz sorğuları yaradır və dəqiq olaraq hansıların təhlükəsiz olmadığını izah edir.

FAQ

Suallar

SQL tap və əvəz et ilə WordPress sayt URL-imi dəyişə bilərəm?

Təhlükəsiz şəkildə yox və bu, WordPress-də ən çox paylaşılan pis məsləhətdir. Bir çox seçim PHP ilə serializasiya olunmuş sətirlər kimi saxlanılır ki, onlar öz bayt uzunluğunu qeyd edir. Adi SQL əvəzləməsi mətni dəyişir, uzunluğu isə yox, buna görə PHP sətri deserializasiya edə bilmir və dəyər sadəcə yoxa çıxır — vidjet parametrləri, mövzu dəyişiklikləri və plagin konfiqurasiyasını da özü ilə aparır.

Bunun əvəzinə nə istifadə etməliyəm?

WP-CLI: əvvəlcə 'wp search-replace old new --all-tables --dry-run', sonra --dry-run olmadan. O, serializasiyanı başa düşür və uzunluq prefikslərini düzgün yenidən yazır. CLI girişiniz yoxdursa, Better Search Replace plagini eyni şeyi admin panelindən edir.

GUID sütununu yeniləməliyəm?

Xeyr. GUID yazının daimi unikal identifikatorudur, link deyil və lent oxucuları ona görə açar alır. Onu yenidən yazmaq hər abunəçinin hər köhnə yazını yepyeni kimi görməsinə səbəb olur. WordPress sənədləri onu dəyişməməyi açıq şəkildə deyir.