Skip to content
Tools

Search & Replace SQL

Baguhin ang URL ng iyong site nang hindi sinisira ang serialized na data

Tumatakbo sa iyong browser. Walang ina-upload.

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.

Tungkol sa Search & Replace SQL

Ang isang basta-bastang SQL find-and-replace sa isang WordPress database ay sinisira ang bawat serialized na option na madampian nito, dahil hindi na tumutugma ang nakaimbak na haba ng string. Bumubuo ito ng mga query na ligtas, at ipinapaliwanag nang eksakto kung alin ang hindi.

FAQ

Mga Tanong

Puwede ko bang baguhin ang aking WordPress site URL gamit ang isang SQL find and replace?

Hindi nang ligtas, at ito ang pinaka-ibinabahaging masamang payo sa WordPress. Maraming option ang naka-store bilang PHP-serialized na strings na nagre-record ng sariling byte length. Ang isang plain SQL replace ay binabago ang text ngunit hindi ang length, kaya tahimik na nabibigo ang PHP na i-unserialize ang row at basta na lang nawawala ang value — dala ang widget settings, theme mods at plugin config.

Ano ang dapat kong gamitin sa halip?

WP-CLI: 'wp search-replace old new --all-tables --dry-run' muna, tapos nang walang --dry-run. Nauunawaan nito ang serialization at muling isinusulat ang length prefixes nang tama. Kung wala kang CLI access, ang Better Search Replace plugin ay gumagawa ng parehong bagay mula sa admin.

Dapat ko bang i-update ang GUID column?

Hindi. Ang GUID ay isang permanenteng unique identifier para sa isang post, hindi isang link, at umaasa dito ang feed readers. Ang pag-rewrite nito ay ginagawang makita ng bawat subscriber ang bawat lumang post bilang bagong-bago. Malinaw na sinasabi ng dokumentasyon ng WordPress na huwag itong baguhin.