ล้างข้อมูลอัปโหลดโฟลเดอร์โครงสร้างฐานข้อมูล Media Library


10

ฉันทำการอัปเกรดและล้างข้อมูลบล็อกเก่าที่เริ่มต้นใน Blogger.com จากนั้นย้ายไปใช้ WordPress 2.1, 2.3 และ 3.0 ที่โฮสต์โดยโฮสต์เอง ภาพในการโพสต์จะกระจายอยู่รอบส่วนใหญ่ของพวกเขาใน/wp-content/แต่ไม่ทั้งหมดในหรือ/wp-content/uploads/ /wp-content/uploads/year/month/คนอื่นยังคงอ้างอิงเซิร์ฟเวอร์รูปภาพของ blogger.com ฉันต้องการที่จะรวมพวกเขาทั้งหมดใน/wp-content/uploads/year/month/ซึ่งฉันคิดว่าเป็นสถานที่ "ถูกต้อง"? สิ่งนี้จะทำให้การอัพเกรดในภายหลังง่ายขึ้น

วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร? ฉันต้องการอัปเดตข้อมูลเมตาด้วยเพื่อให้ Media Library สามารถจัดการข้อมูลทั้งหมดได้ ฉันไม่พบเอกสารใด ๆ เกี่ยวกับเรื่องนี้ดังนั้นขออภัยถ้าฉันพลาดมันโปรดชี้ไปที่มัน

แน่นอนฉันจะให้การเปลี่ยนเส้นทางจากที่ตั้งเก่าไปยังที่ใหม่ วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร? เทมเพลต404.phpของปลั๊กอินหรือไม่ ฉันต้องการเพิ่มการบันทึกบางส่วนเพื่อให้เราสามารถค้นหาหน้าอ้างอิงและอาจแก้ไขให้ถูกต้อง

( แต่เดิมคำถามนี้ถูกถามในฟอรัมการสนับสนุน WordPressแต่ไม่มีคำตอบที่เป็นประโยชน์)


คุณกำลังมองหาปลั๊กอินที่ทำงานหรือไม่?
hakre

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

ฉันยอมรับว่าตัวแก้ไขมีเดียจำนวนมากจะมีประโยชน์ สิ่งที่ช่วยให้คุณนำเข้าสื่อจากโฟลเดอร์ต่าง ๆ และย้ายอย่างรวดเร็วตามกฎบางอย่าง ฉันอาจทำสิ่งนี้ได้จริง
noio

คำตอบ:


7

W3-Total Cache มีคุณสมบัติที่จะสแกนการโพสต์ทั้งหมดของคุณและนำเข้าภาพภายนอกใด ๆ ลงในไลบรารีสื่อและเปลี่ยนเส้นทางไปยังตำแหน่งใหม่

ดูภาพหน้าจอ

ข้อความแสดงแทน


2

สถานที่ที่ถูกต้องคือการตั้งค่าปัจจุบันที่ฉันจะบอก ดังนั้นหากคุณใช้โฟลเดอร์อัปโหลดหนึ่งโฟลเดอร์ (แทนที่จะเป็นโฟลเดอร์ย่อยปี / เดือน) ให้ไปกับโฟลเดอร์นั้น (อาจจะเต็มมาก แต่ง่ายต่อการเรียงลำดับ) ดังนั้นเพียงแค่ย้ายไฟล์ทั้งหมดจากไดเรกทอรีย่อยปี / เดือนไปยังไดเรกทอรีอัปโหลดและเปลี่ยน URL รูปแบบในฐานข้อมูลควรทำงานตามปกติ

หลังจากทั้งหมดอยู่ในโฟลเดอร์เดียว (และเรียงลำดับ) คุณสามารถเปลี่ยนการออกแบบโฟลเดอร์อีกครั้งและย้ายไฟล์ไปยังไดเรกทอรีที่ถูกต้องด้วยสคริปต์ PHP ที่อ่านวันที่ออกจากฐานข้อมูล สคริปต์เดียวกันนี้ต้องใช้เส้นทาง URL อีกครั้งเช่นกัน

นั่นเป็นสิ่งที่เหมือนกับสคริปต์เดียวกันกับที่ไมค์แนะนำ

ในตอนนี้ WP UI ไม่สนับสนุนการย้ายหรือเปลี่ยนชื่อไฟล์ด้วยตนเองดังนั้นคุณจึงผูกพันกับรหัสของตัวเอง ซึ่งจะสมเหตุสมผลสำหรับชุดต่อไป

ปลั๊กอินที่มีอยู่และที่เกี่ยวข้อง


1

@Jan Fabry: คุณอาจต้องจัดการแต่ละกรณีแยกกันเช่น Blogger ที่โฮสต์ภาพและสิ่งที่อยู่นอก wp-content เป็นต้น

นี่คือปลั๊กอินสำหรับการนำเข้าจาก Blogger; ยังไม่ได้รับการอัปเดตในขณะนี้ แต่อาจยังใช้งานได้หรืออย่างน้อยก็มีรหัสที่คุณสามารถใช้ได้:

นอกจากนี้ยังมีปลั๊กอินรุ่นเก่าที่อาจใช้หรือไม่ทำงาน:

นอกเหนือจากที่ฉันคิดว่าคุณเพียงแค่ต้องเขียนสคริปต์ PHP ที่สแกนไฟล์ของคุณและสแกนโพสต์ของคุณมองหา URL ภาพที่ฝังตัวพัฒนารายการที่ตัดกันแล้วย้ายไฟล์และอัปเดตการอ้างอิงในโพสต์ หรือบางทีคุณอาจจะโชคดีและปลั๊กอินนั้นยังใช้งานได้และทำเพื่อคุณ!

โชคดี.


0

อาจจะ (และเป็นเพียงสำหรับผู้อ่านในอนาคต - มันเป็น Q เก่า) คุณสามารถแสดงรายการ 'post_type' => 'สิ่งที่แนบมา' ทั้งหมดและเริ่มแยกจากที่นั่น ฉันหมายถึงการดึงข้อมูลโพสต์และบันทึกตำแหน่งที่แตกต่างกันในหนึ่งอาเรย์ จากนั้นจัดเรียงภาพเพื่อดูภาพรวมว่าภาพของคุณวางอยู่ตรงไหน ...


1
@kaiser: มันอาจเป็นคำถามเก่า แต่ฉันยังคงทำงานในส่วนของมันดังนั้นคำแนะนำทั้งหมดยินดีต้อนรับ! ฉันหวังว่าจะเขียนสิ่งที่ฉันลงเอยด้วยคำตอบในไม่ช้า
Jan Fabry

@Jan: ฉันเดาว่าฉันจะเรียกทั้งหมด 'post_type' => 'สิ่งที่แนบมา' แล้วโทรหาที่ตั้ง (ถ้านี่ถูกเก็บไว้ที่ไหนสักแห่งใน query_vars) และถ้ามันไม่มีอยู่ในอาร์เรย์ที่กำหนดไว้ล่วงหน้า (ว่างเปล่าแรก) ที่นั่น ด้วยผลลัพธ์ที่ได้ฉันจะลองกับ array_intersect หรือคล้ายกันเพื่อส่งคืนตำแหน่งที่ต่างกัน นั่นเป็นเพียงความคิดแรกและอย่างรวดเร็ว 'สกปรก / คร่าวๆเกี่ยวกับวิธีการค้นหาว่าสิ่งที่มีการแพร่กระจาย จนถึงขณะนี้ผมได้มีเงื่อนงำไม่มีสิ่งที่ฉันจะทำอย่างไรกับผลหรือเปลี่ยนเส้นทาง ...
Kaiser

... ฉันคิดว่าเป็นไปได้ที่จะดึงตำแหน่งของไฟล์แนบต่าง ๆ จากนั้นย้ายมันและอัปเดตตำแหน่งในฐานข้อมูล ฉันไม่สนใจเกี่ยวกับการเปลี่ยนเส้นทางมากนัก โพสต์รู้เมื่อ db รู้และผู้สนใจเกี่ยวกับการจัดทำดัชนีของสิ่งที่แนบมาโพสต์ คุณต้องการให้ไม่มีใครลิงก์โดยตรง / ฮอตรูปภาพของคุณ (หรือไฟล์แนบเทมเพลต) และแทนที่จะลิงค์ไปยังโพสต์ที่มี ฉันเองไม่เคยใช้เทมเพลตสิ่งที่แนบมาหรือตั้งลิงก์ (นอกเหนือจากกล่องรวมภาพและที่คล้ายกัน) ไปยังไฟล์แนบภายในโพสต์
kaiser

@kaiser: ขณะนี้ฉันได้สร้างการเปลี่ยนเส้นทางครั้งแรกและย้ายรูปภาพ "ที่หายไป" ทั้งหมดภายใต้/wp-content/uploads/moved/ไดเรกทอรี วิธีนี้โพสต์ทั้งหมดแม้แต่ที่อ้างอิงตำแหน่งเก่าจะยังคงทำงานและไดเรกทอรีอื่น ๆ ของฉันชัดเจน (ซึ่งเป็นปัญหาที่ใหญ่ที่สุดสำหรับฉัน: มันไม่ชัดเจนมากว่าเป็นของ WordPress และอะไรไม่ได้) ตอนนี้ฉันกำลังปรับปรุงสิ่งที่แนบมาที่มีอยู่และเพิ่มภาพที่ยังไม่ได้เพิ่มเป็นสิ่งที่แนบมา
Jan Fabry

@Jan: "ตอนนี้ฉันกำลังอัปเดตสิ่งที่แนบที่มีอยู่และเพิ่มรูปภาพที่ยังไม่ได้เพิ่มเป็นสิ่งที่แนบ" ต่อมือ - ทีละนิด? ฉันไม่ทราบแน่ชัด แต่ฉันคิดว่าคุณต้องการเพียงการเปลี่ยนเส้นทางตราบใดที่เครื่องมือค้นหาไม่ทราบตำแหน่งใหม่ ส่วนที่เหลือควรพึ่งพา db-entry ไม่ถูกต้อง?
kaiser
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.