Bỏ qua tới nội dung
Công cụ

SQL Tìm & Thay thế

Đổi URL website mà không làm hỏng dữ liệu đã serialize

Chạy trong trình duyệt của bạn. Không up gì cả.

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.

Về SQL Tìm & Thay thế

Một lệnh tìm-và-thay-thế SQL ngây thơ trên cơ sở dữ liệu WordPress sẽ làm hỏng mọi tùy chọn đã serialize mà nó chạm tới, vì độ dài chuỗi được lưu không còn khớp nữa. Công cụ này tạo các truy vấn an toàn và giải thích chính xác truy vấn nào thì không.

FAQ

Câu hỏi

Tôi có thể đổi URL trang WordPress bằng cách tìm và thay thế SQL không?

Không an toàn, và đây là lời khuyên tồi được chia sẻ nhiều nhất trong WordPress. Nhiều tùy chọn được lưu dưới dạng chuỗi PHP đã serialize, có ghi lại độ dài byte của chính mình. Một lệnh thay thế SQL thường thay đổi phần văn bản nhưng không thay đổi độ dài, nên PHP âm thầm thất bại khi unserialize dòng đó và giá trị đơn giản là biến mất — mang theo cả cài đặt widget, theme mod và cấu hình plugin.

Vậy tôi nên dùng gì thay thế?

WP-CLI: 'wp search-replace old new --all-tables --dry-run' trước, rồi bỏ --dry-run. Nó hiểu serialization và viết lại các tiền tố độ dài cho đúng. Nếu bạn không có quyền truy cập CLI, plugin Better Search Replace làm điều tương tự từ trang quản trị.

Tôi có nên cập nhật cột GUID không?

Không. GUID là một định danh duy nhất vĩnh viễn cho một bài viết, không phải một link, và các trình đọc feed dựa vào nó. Viết lại nó khiến mọi người theo dõi thấy mọi bài cũ như bài mới toanh. Tài liệu WordPress nói rõ ràng là đừng đổi nó.