Αρχική σελίδα » WordPress » Μαζική εύρεση και αντικατάσταση βάσεων δεδομένων WordPress - Ο εύκολος τρόπος

    Μαζική εύρεση και αντικατάσταση βάσεων δεδομένων WordPress - Ο εύκολος τρόπος

    Υπάρχουν πολλές περιπτώσεις όπου πρέπει αλλάξτε τις διευθύνσεις URL στη βάση δεδομένων του ιστότοπου του WordPress. Για παράδειγμα, πρέπει να το κάνουμε αυτό μετά τη μετεγκατάσταση μιας βάσης δεδομένων WordPress από έναν ιστότοπο, π.χ. από το http://acme.com απομακρυσμένη τοποθεσία παραγωγής, στο http://acme.dev τοπική ιστοσελίδα ανάπτυξης στον υπολογιστή μας.

    Το WordPress.org φιλοξενεί έναν μεγάλο αριθμό πρόσθετων στοιχείων, όπως το WP DBManager και το WP Migrate DB, και υπάρχουν επίσης ορισμένα εργαλεία τρίτων που σας επιτρέπουν να βάσης δεδομένων εισαγωγής εύκολα. Το δύσκολο κομμάτι πρέπει να γίνει αλλαγή κάθε στιγμιότυπου URL μέσα στη βάση δεδομένων.

    Μετά τη μετεγκατάσταση της βάσης δεδομένων, διευθύνσεις URL μέσα σε αυτήν εξακολουθεί να δείχνει προς την παλιά τοποθεσία, στην περίπτωση αυτή acme.com. Μπορείτε να βρείτε την παλιά διεύθυνση URL στο wp_options πίνακα, που ορίζεται ως η τιμή του siteurl και Σπίτι επιλογές και είναι πιθανώς ενσωματωμένο σε διάφορες άλλες σειρές και πίνακες στη βάση δεδομένων. Αυτές οι παλιές διευθύνσεις URL ενδέχεται τελικά να αποτρέψουν την σωστή λειτουργία του ιστότοπού σας, γι 'αυτό πρέπει να τις αλλάξετε στη νέα διεύθυνση URL, στο παράδειγμα μας acme.dev.

    IMAGE: Sequel Pro, αναζήτηση αξίας βάσης δεδομένων

    Σε αυτό το σημείο, η πρόσβαση στον χώρο ανάπτυξης μας στο acme.dev θα οδηγήσει απλά σε μια κενή σελίδα.

    Πώς λοιπόν αλλάζουμε όλες αυτές τις διευθύνσεις URL στη βάση δεδομένων?

    Εκτέλεση ερωτήματος SQL

    Συνήθως, οι χρήστες θα εκτελέσουν το ακόλουθο ερώτημα SQL που αντικαθιστά τις τιμές του siteurl και Σπίτι επιλογές στο wp_options τραπέζι.

     UPDATE wp_options Ρύθμιση option_value = αντικαταστήστε (option_value, 'http://acme.com', 'http://acme.dev') WHERE option_name = 'home' ή option_name = 'siteurl'; 

    Στη συνέχεια, χρησιμοποιούν ένα άλλο ερώτημα SQL για να αντικαταστήσουν όλες τις εμφανίσεις διευθύνσεων URL στο wp_posts πίνακας, δηλαδή στην κατηγορία post_content στήλη κάθε σειράς.

     UPDATE wp_posts SET post_content = αντικαταστήστε (post_content, 'http://acme.com', 'http://acme.dev'); 

    Η εκτέλεση αυτών των ερωτημάτων είναι μια εφαρμόσιμη λύση, αλλά ταυτόχρονα δεν είναι βολικό να το κάνετε. Θα μπορούσε να είναι ακόμη νευρικό-wracking, βλέποντας πώς η βάση δεδομένων μπορεί να μετατραπεί haywire οφείλεται σε μια απλή επίβλεψη στο ερώτημα.

    Αξιοποιώντας το WP-CLI

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

    Υποθέτοντας ότι έχετε εγκαταστήσει το WP-CLI και έχετε το wp εντολή που είναι προσβάσιμη ως ψευδώνυμο, μεταβείτε στον κατάλογο όπου βρίσκονται τα αρχεία ιστότοπων του WordPress.

    Στη συνέχεια, εκτελέστε την ακόλουθη εντολή:

    αναζήτηση wp - αντικαταστήστε το "http://acme.com" http://acme.dev

    Η πρώτη παράμετρος, 'http://acme.com', είναι η παλιά εγγραφή να αντικατασταθεί με τη δεύτερη, 'http://acme.dev'.

    Η γραμμή εντολών θα πραγματοποιήσει αναζήτηση όλους τους πίνακες της βάσης δεδομένων, όχι μόνο το post_content στήλη και wp_options τραπέζι και αντικαταστήστε κάθε περίπτωση της καταχώρισης που πέρασε από τις παραμέτρους της εντολής.

    Όπως μπορείτε να δείτε από το παραπάνω screenshot, έχουν γίνει 225 αντικαταστάσεις. Και το κάναμε με μια απλή γραμμή εντολής.

    Νομίζω ότι αξίζει να αναφέρουμε ότι μπορούμε να χρησιμοποιήσουμε το wp αναζήτηση-αντικατάσταση εντολή, όχι μόνο για την αντικατάσταση των διευθύνσεων URL, αλλά οποιοδήποτε κομμάτι αξία αποθηκεύονται και στη βάση δεδομένων. Μπορούμε επίσης να περιορίσουμε τη λειτουργία σε έναν συγκεκριμένο πίνακα, διαβάζοντας το όνομα του πίνακα ως την τέταρτη παράμετρο, ως εξής:

    wp search-αντικαταστήστε το ".jpg" .webp 'wp_posts

    Με την εκτέλεση της παραπάνω εντολής, θα πραγματοποιήσει αναζήτηση μόνο wp_posts, τον πίνακα που αποθηκεύει το περιεχόμενό μας - αναρτήσεις, σελίδες κ.λπ. - και αντικαταστήστε την επέκταση εικόνας από .jpg προς το .webp.

    Το WP-CLI κάνει μια μπερδεμένη λειτουργία SQL πιο έξυπνη και μπορείτε να εργαστείτε με αυτό με πιο βολικό τρόπο. Εάν θέλετε να τελειοποιήσετε τις εντολές σας, ρίξτε μια ματιά στην τεκμηρίωση του WP-CLI, η οποία σας παρέχει μια λίστα επιλογών για να εκτελέσετε μια πιο προηγμένη λειτουργία με το wp αναζήτηση-αντικατάστασηεντολή.