DEV Community

Cadu de Castro Alves
Cadu de Castro Alves

Posted on

1

How to backup only original images of your WordPress site using WP-CLI

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 to the rescue!

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:

$ wp post list --post_type=attachment --field=guid > wp-content/uploads/images.txt

Let me explain each part of this command:

  1. wp post list is a command to list all WordPress posts
  2. --post_type=attachment is an argument to retrieve only images
  3. --field=guid is an argumento to retrieve the URL of each image
  4. > wp-content/upload/images.txt is a command to output the result of wp post list --post_type=attachment --field=guid into a file.

How to download the images (and create a backup)

After running the command above, you should have a file located at https://yousite.com/wp-content/uploads/images.txt.

Now, you should go back to your terminal, cd to the folder you want to download the files, and type the following command:

$ 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.

Voila!

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

The Most Contextual AI Development Assistant

Pieces.app image

Our centralized storage agent works on-device, unifying various developer tools to proactively capture and enrich useful materials, streamline collaboration, and solve complex problems through a contextual understanding of your unique workflow.

👥 Ideal for solo developers, teams, and cross-company projects

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay