Bunu yapan bir eklenti oluşturdum. Mükemmel değil ama işini yapıyor.
Bunu Github'ımda bulabilirsiniz: https://github.com/pontusab/wp-ftp-media-library
Bu nedenle, satır 28'deki dosyadaki bazı şeyleri değiştirmeniz gerekir:
/**
* 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
);
Bu eklentinin yaptığı, sunucu A sunucumuzda yalnızca yerel makineye yüklemek için yükleme yapısını / yıl / ay olarak değiştirmektir . Sonra ftp'ye ftp_connect ile bağlanmak için php kullanır . Wp_generate_attachment_metadata çalıştırıldığında işlev tetiklenir. Daha sonra herhangi bir görüntü olup olmadığını görmek için yükleme klasöründe bir kontrol gerçekleştirir , eğer öyleyse hepsini ftp_put aracılığıyla ftp sunucusuna yükler . Yükleme tamamlandığında dosyalar bağlantıyı kaldırma işlevi kullanılarak yerel makineden kaldırılır .
Daha sonra eklenti, görüntülerin url'sini ftp sunucusuna işaret eden "public" ip veya ana bilgisayar adına değiştirir. Static.mydomain.com veya cdn.mydomai.com gibi bir şey kullanmanızı öneririm. Görüntüleri ftp sunucusundan yüklemenizi sağlayan ftp sunucusuna (Sunucu B) yönlendirilmesi gerekir.
Diğer üyelerin bunun için bir ftp sunucusu kullanmanız gerektiğini söylediği gibi, gerçek bir cdn ile daha iyidir, Sigorta veya Amazon S3 gibi bir şey ile monte edilir.