I'm member of a WordPress community on WhatsApp. Today, one member raised the following question:
"I need to create a backup of all images of a website, but only the original ones. I don't need the thumbnails. Does anybody know how to do that?"
If you Google about "how to backup full images on WordPress" or something similar, you will find a lot of posts about backing up images, but not only the original ones.
Then, I've discovered that it's possible to download multiple files at once using
wget -i filename.txt. filename.txt file should contain a list of URLs, but each one must be in a separate line.
But how could I get a list of ALL full images of a WordPress site?
WP-CLI is the command-line interface for WordPress. You can update plugins, configure multisite installations and much more, without using a web browser.
For this task, we need to find a way to list the URLs of all original images and save them into a file.
We can do that by running only one command:
1$ wp post list --post_type=attachment --field=guid > wp-content/uploads/images.txt
Let me explain each part of this command:
wp post listis a command to list all WordPress posts
--post_type=attachmentis an argument to retrieve only images
--field=guidis an argumento to retrieve the URL of each image
> wp-content/upload/images.txtis a command to output the result of
wp post list --post_type=attachment --field=guidinto a file.
After running the command above, you should have a file located at
Now, you should go back to your terminal,
cd to the folder you want to download the files, and type the following command:
1$ wget -i https://yousite.com/wp-content/uploads/images.txt
As soon as you hit Enter/Return,
wget you start to download all the images contained in images.txt file to the computer (or server) you're running this command.