Tôi vừa xây dựng một plugin làm điều này. Nó không hoàn hảo nhưng nó làm công việc của nó.
Bạn có thể tìm thấy nó trong Github của tôi: https://github.com/pontusab/wp-ftp-media-l
Vì vậy, bạn cần thay đổi một số thứ trong tệp trên hàng 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
);
Những gì plugin này làm là, nó thay đổi cấu trúc tải lên từ / năm / tháng thành chỉ tải lên trên máy cục bộ trong trường hợp Máy chủ A của chúng tôi . Sau đó, nó sử dụng php để kết nối với ftp thông qua: ftp_connect . Hàm kích hoạt khi wp_generate_attachment_metadata chạy. Sau đó, nó chạy một kiểm tra trong thư mục tải lên để xem nếu có bất kỳ hình ảnh nào , nếu vậy nó sẽ tải tất cả chúng lên máy chủ ftp thông qua ftp_put . Khi tải lên hoàn tất, các tệp sẽ bị xóa khỏi máy cục bộ bằng cách hủy liên kết chức năng .
Sau đó, plugin thay đổi url của hình ảnh thành ip "công khai" hoặc tên máy chủ được trỏ đến máy chủ ftp. Tôi đề nghị sử dụng một cái gì đó như static.mydomain.com hoặc cdn.mydomai.com. Chúng cần được trỏ đến máy chủ ftp (Máy chủ B) cho phép bạn tải hình ảnh từ máy chủ ftp.
Như các thành viên khác nói rằng bạn nên sử dụng máy chủ ftp cho việc này, nó tốt hơn với một cdn thực, Được gắn bởi cầu chì hoặc một cái gì đó như Amazon S3.