โฮมเพจ » 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.

    ภาพ: ผลสืบเนื่อง Pro ค้นหาค่าฐานข้อมูล

    ณ จุดนี้การเข้าถึงเว็บไซต์การพัฒนาของเราที่ acme.dev ก็จะนำไปสู่ ไปยังหน้าว่าง.

    ดังนั้นเราจะเปลี่ยน URL ทั้งหมดเหล่านี้ในฐานข้อมูลได้อย่างไร?

    เรียกใช้ SQL Query

    โดยปกติแล้วคนจะเรียกใช้แบบสอบถาม SQL ต่อไปนี้ซึ่งแทนที่ค่าของ siteurl และ บ้าน ตัวเลือกใน wp_options ตาราง.

     อัพเดต wp_options SET option_value = แทนที่ (option_value, 'http://acme.com', 'http://acme.dev') WHERE option_name = 'home' หรือ option_name = 'siteurl'; 

    จากนั้นพวกเขาใช้ SQL Query อื่นเพื่อแทนที่ URL ทั้งหมดที่เกิดขึ้นใน wp_posts ตารางคือใน POST_CONTENT คอลัมน์ของแต่ละแถว.

     อัปเดต wp_posts SET post_content = แทนที่ (post_content, 'http://acme.com', 'http://acme.dev'); 

    การเรียกใช้คิวรีเหล่านี้เป็นโซลูชันที่ใช้การได้ แต่ในขณะเดียวกันก็ไม่สะดวกในการทำ มันอาจเป็นเรื่องที่น่าวิตกกังวลเมื่อเห็นว่าฐานข้อมูลอาจเปลี่ยนไปเป็นยุ่งเหยิงได้อย่างไรเนื่องจากการดูแลง่าย ๆ ภายในแบบสอบถาม.

    การใช้ประโยชน์จาก WP-CLI

    เส้นทางอื่นที่เราสามารถทำได้และสิ่งที่ฉันได้พบว่าเป็นทางเลือกที่สะดวกกว่านั้นก็คือ การใช้ประโยชน์จากบรรทัดคำสั่ง WP-CLI. หมายความว่าคุณจะต้องติดตั้ง WP-CLI.

    สมมติว่าคุณติดตั้ง WP-CLI และมี WP คำสั่งสามารถเข้าถึงได้เป็นนามแฝงนำทางไปยังไดเรกทอรีที่ไฟล์ไซต์ WordPress ของคุณอยู่.

    จากนั้นรันคำสั่งต่อไปนี้:

    wp search-replace 'http://acme.com "http://acme.dev

    พารามิเตอร์แรก, 'http://acme.com', เป็นรายการเก่าที่จะถูกแทนที่ด้วยรายการที่สอง, 'http://acme.dev'.

    บรรทัดคำสั่งจะค้นหาผ่าน ตารางทั้งหมดภายในฐานข้อมูล, ไม่เพียง แต่ POST_CONTENT คอลัมน์และ wp_options ตารางและ แทนที่ทุกอินสแตนซ์ ของรายการที่ส่งผ่านพารามิเตอร์ของคำสั่ง.

    อย่างที่คุณเห็นจากภาพด้านบนมีการเปลี่ยนทั้งหมด 225 ครั้ง และเราได้ทำผ่านบรรทัดคำสั่งง่ายๆ.

    ฉันคิดว่ามันเป็นมูลค่าการกล่าวขวัญว่าเราสามารถใช้ wp search-replace คำสั่งไม่เพียง แต่แทนที่ URL แต่เป็นส่วนหนึ่งส่วนใดของ ราคา เก็บไว้ในฐานข้อมูลเช่นกัน นอกจากนี้เรายังสามารถ จำกัด การดำเนินการลงในตารางที่แน่นอนโดยส่งชื่อตารางเป็นพารามิเตอร์ที่สี่ดังนี้:

    wp search-replace '.jpg ".webp' wp_posts

    เรียกใช้คำสั่งด้านบนมันจะค้นหาเท่านั้น wp_posts, ตารางที่เก็บเนื้อหาของเรา - โพสต์หน้า ฯลฯ - และแทนที่ส่วนขยายภาพจาก .JPG ไปยัง .webp.

    WP-CLI ทำให้การดำเนินการ SQL แบบพันกันดูง่ายขึ้นและคุณสามารถทำงานกับมันได้อย่างสะดวกยิ่งขึ้น หากคุณต้องการปรับคำสั่งของคุณอย่างละเอียดดูเอกสารของ WP-CLI ที่ให้รายการตัวเลือกเพื่อดำเนินการขั้นสูงกับ wp search-replaceคำสั่ง.