Acabei de criar um plugin que faz isso. Não é perfeito, mas faz o seu trabalho.
Você pode encontrá-lo no meu Github: https://github.com/pontusab/wp-ftp-media-library
Então, você precisa alterar algumas coisas dentro do arquivo na linha 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
);
O que este plugin faz é, ele muda o structur carregamento de / ano / mês para apenas carregar na máquina local no nosso caso Servidor A . Em seguida, ele usa o php para se conectar ao ftp via: ftp_connect . A função é acionada quando o wp_generate_attachment_metadata é executado. Em seguida, ele executa uma verificação na pasta de upload para ver se há alguma imagem ; nesse caso, ele fará o upload de todas elas no servidor ftp via ftp_put . Quando o upload for concluído, os arquivos serão removidos da máquina local usando a função desvincular .
Em seguida, o plugin altera o URL das imagens para o IP ou nome de host "público" apontado para o servidor ftp. Sugiro usar algo como static.mydomain.com ou cdn.mydomai.com. Eles precisam ser apontados para o servidor ftp (servidor B), que permite carregar as imagens do servidor ftp.
Como os outros membros dizem que você não deveria usar um servidor ftp para isso, é melhor usar um CDN real, montado por fusível ou algo como o Amazon S3.