Μετάβαση στο περιεχόμενο
Εργαλεία

SQL αναζήτησης & αντικατάστασης

Αλλάξτε το URL του ιστότοπού σας χωρίς να αλλοιώσετε τα σειριοποιημένα δεδομένα

Τρέχει στον browser σου. Τίποτα δεν ανεβαίνει.

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 αναζήτησης & αντικατάστασης

Μια αφελής SQL αναζήτηση-και-αντικατάσταση σε μια βάση δεδομένων WordPress σπάει κάθε σειριοποιημένη επιλογή που αγγίζει, επειδή το αποθηκευμένο μήκος της συμβολοσειράς δεν ταιριάζει πια. Αυτό δημιουργεί τα ερωτήματα που είναι ασφαλή και εξηγεί ακριβώς ποια δεν είναι.

FAQ

Ερωτήσεις

Μπορώ να αλλάξω το URL του site μου στο WordPress με ένα SQL find and replace;

Όχι με ασφάλεια, και αυτή είναι η πιο πολυδιαδεδομένη κακή συμβουλή στο WordPress. Πολλές επιλογές αποθηκεύονται ως PHP-serialized strings που καταγράφουν το δικό τους μήκος σε bytes. Ένα απλό SQL replace αλλάζει το κείμενο αλλά όχι το μήκος, οπότε η PHP αποτυγχάνει σιωπηλά να κάνει unserialize τη γραμμή και η τιμή απλώς εξαφανίζεται — παρασύροντας μαζί της ρυθμίσεις widget, theme mods και config προσθέτων.

Τι πρέπει να χρησιμοποιήσω αντ' αυτού;

WP-CLI: πρώτα 'wp search-replace old new --all-tables --dry-run', μετά χωρίς το --dry-run. Καταλαβαίνει το serialization και ξαναγράφει σωστά τα prefixes μήκους. Αν δεν έχεις πρόσβαση σε CLI, το πρόσθετο Better Search Replace κάνει το ίδιο πράγμα από τη διαχείριση.

Να ενημερώσω τη στήλη GUID;

Όχι. Το GUID είναι ένα μόνιμο μοναδικό αναγνωριστικό για ένα άρθρο, όχι σύνδεσμος, και οι feed readers βασίζονται σε αυτό. Το να το ξαναγράψεις κάνει κάθε συνδρομητή να δει κάθε παλιό άρθρο σαν ολοκαίνουργιο. Η τεκμηρίωση του WordPress λέει ρητά να μην το αλλάζεις.