Eu estava precisando puxar as imagens de um wordpress que estava num servidor pra outro. Porém eu não tinha acesso ao FTP para migrar as imagens que o cliente anexou ao post.
Com a própria ferramenta de exportação do wordpress eu criei um XML onde viria todo o conteúdo pra mim, mesmo assim, não teve jeito dessa ferramenta de migração/exportação do wordpress me entregar essas imagens, mantendo o endereço do site antigo e as imagens ainda hospedadas lá.
Por isso eu primeiro criei um script para baixar as imagens pro meu servidor
$xml = simplexml_load_file('posts.wordpress.2017-05-03.xml');
$items = $xml->channel->item;
//regex do filter images
$regex = '/src="(.*?)"/';
foreach($items as $item) {
//get encoded from xml exported wordpress file
$body = (string) $item->children('http://purl.org/rss/1.0/modules/content/')->encoded;
//find images
preg_match_all($regex, $body, $matches);
foreach ($matches[1] as $url) {
// i'll output line by line that url for you
// echo $url . "\n";
// i'll append this url in a list file
file_put_contents('list.txt', $url . "\n", FILE_APPEND | LOCK_EX);
}
}
// I need wget installed in your terminal
system('wget -x -i list.txt');
rodei esse script acima pelo ssh com o seguinte comando
php download-images-wp.php
onde download-images-wp.php é o nome do arquivo que coloquei o código acima ok?
Depois desse script eu precisei rodar outra rotina no banco de dados pra poder mudar o dominio.
UPDATE wp_posts
SET post_content = REPLACE (post_content, 'www.dominioantigo.com', 'www.novodominio.com');
pronto.. agora eu baixei todas as imagens que tinha no outro servidor e atualizei o banco para apontar para meu novo dominio.