我刚刚构建了一个插件来实现这一点。它不是完美的,但它做得很好。
您可以在我的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
);
这个插件所做的是,它将上载结构从/年/月更改为仅在本地计算机上上载
Server A. 然后使用php通过以下方式连接到ftp:
ftp_connect. 该函数在运行wp\\u generate\\u attachment\\u元数据时激发。然后运行
check in the upload folder to see if there areu any images, 如果是这样,它将通过以下方式将它们全部上载到ftp服务器
ftp_put. 上载完成后,将使用功能从本地计算机中删除文件
unlink.
然后插件将图像的url更改为指向ftp服务器的“公共”ip或主机名。我建议使用类似静态的东西。mydomain。com或cdn。密多迈。com。它们需要指向ftp服务器(服务器B),这使您能够从ftp服务器加载图像。
正如其他成员所说,您不应该使用ftp服务器来实现这一点,最好使用真正的cdn,由fuse或类似Amazon S3的东西装载。