ฉันเพิ่งสร้างปลั๊กอินที่ทำสิ่งนี้ มันไม่สมบูรณ์แบบ แต่มันทำงาน
คุณสามารถค้นหาได้ใน Github ของฉัน: https://github.com/pontusab/wp-ftp-media-library
ดังนั้นคุณต้องเปลี่ยนบางสิ่งในไฟล์ในแถวที่ 28:
/**
* Change this to match your server
* You only need to change the those with (*)
* If marked with (-) its optional
*/
$settings = array(
'host' => 'ip or hostname', // * the ftp-server hostname
'user' => 'username', // * ftp-user
'pass' => 'password', // * ftp-password
'cdn' => 'cdn.example.com', // * This have to be a pointed domain or subdomain to the root of the uploads
'path' => '/', // - ftp-path, default is root (/). Change here and add the dir on the ftp-server,
'base' => $upload_dir['basedir'] // Basedir on local
);
อะไรปลั๊กอินนี้จะเป็นมันเปลี่ยนแปลง structur อัปโหลดจาก / ปี / เดือนเพื่ออัปโหลดเฉพาะบนเครื่องท้องถิ่นในกรณีของเราเซิร์ฟเวอร์ จากนั้นก็จะใช้ PHP เพื่อเชื่อมต่อกับ FTP ผ่าน: ftp_connect ฟังก์ชันนี้เริ่มทำงานเมื่อ wp_generate_attachment_metadata ทำงาน จากนั้นก็ใช้การตรวจสอบในโฟลเดอร์ที่อัปโหลดเพื่อดูว่ามีอาร์รูภาพใด ๆถ้าเป็นเช่นนั้นก็จะอัปโหลดพวกเขาทั้งหมดเพื่อ FTP เซิร์ฟเวอร์ผ่านftp_put เมื่ออัปโหลดเสร็จสมบูรณ์ไฟล์จะถูกลบออกจากเครื่องท้องถิ่นโดยใช้ฟังก์ชั่นยกเลิกการเชื่อมโยง
จากนั้นปลั๊กอินจะเปลี่ยน URL ของรูปภาพเป็น ip "สาธารณะ" หรือชื่อโฮสต์ที่ชี้ไปยังเซิร์ฟเวอร์ ftp ฉันแนะนำให้ใช้บางอย่างเช่น static.mydomain.com หรือ cdn.mydomai.com พวกเขาจำเป็นต้องชี้ไปที่ ftp-server (Server B) สิ่งนี้ช่วยให้คุณสามารถโหลดรูปภาพจาก ftp-server
ในฐานะสมาชิกคนอื่น ๆ บอกว่าคุณควรใช้ ftp-server เพื่อมันจะดีกว่าด้วย cdn จริง, ติดตั้งโดยฟิวส์หรืออะไรอย่าง Amazon S3