Beginner's Guide for WordPress / Start your WordPress Blog in minutes

How to Limit or Disable Automatic Empty Trash in WordPress

Do you want to change how often your trash is emptied on your WordPress website, or stop WordPress from emptying the trash automatically?

By default, WordPress will automatically delete anything that has been in the trash for 30 days. But some users might like the trash to be emptied more or less often, or prefer to empty the trash manually.

In this article, we will show you how to limit or disable the trash being automatically emptied in WordPress.

How to Limit or Disable Automatic Empty Trash in WordPress

What Is Trash in WordPress?

WordPress added a trash feature way back at version 2.9. It works just like the recycle bin or trash on your computer.

In other words, your deleted posts aren’t removed permanently but are sent to the trash instead so they can be recovered for a time.

Trash links on Posts screen

Anyone can click the Delete link on a post accidentally. That’s why WordPress makes it easy to restore deleted posts and pages.

Your WordPress website will automatically delete anything in the trash after 30 days so that it doesn’t pile up. If you’d like to stop WordPress from emptying the trash automatically, then you can follow our guide on how to disable automatic empty trash in WordPress.

What if you don’t want WordPress to automatically delete items from the trash? Or you’d prefer it to be emptied more or less often than once a month. Let’s have a look at how you can have it automatically emptied as often as you like.

We’ll cover three methods below. The first method is the easiest for most users. You can use the links below to jump to your preferred method.

Method 1: Changing when WordPress Trash Is Emptied with a Plugin

First you need to install and activate the Change Empty Trash Time plugin. For more details, see our step by step guide on how to install a WordPress plugin.

Upon activation, you should visit the Settings » General page of your admin dashboard. Once there, scroll to the bottom of the page and you will find a new ‘Time to empty trash’ setting.

Visit Settings » General to Find a New ‘Time to empty trash’ Setting

Simply type in the number of days that WordPress should take to empty the trash. For example, you can type 1 for daily, 7 for weekly, or 30 for monthly.

If you type 0, then deleted posts and pages will be deleted permanently instead of being placed in the trash.

Note: Be very careful about setting the time to empty to 0. It can be difficult to recover permanently deleted posts and pages. Make sure you’re using a backup plugin just in case.

Don’t forget to click the Save Changes button to store your settings.

Method 2: Changing when WordPress Trash Is Emptied with Code

You can also configure how regularly the trash is emptied by the use of a code snippet. This method is not recommended for beginners, so if you’re not familiar with code, then you should use Method 1 instead.

For this method, you’ll have to edit your wp-config.php file.

If you haven’t edited the wp-config.php file before, then take a look at our guide on how to edit wp-config.php file in WordPress.

You simply add the following line of code in your wp-config.php file. You should paste it near the end of the file, just before the line that says ‘That’s all, stop editing! Happy blogging.’

define('EMPTY_TRASH_DAYS', 1 ); //Integer is the amount of days

Paste the Snippet Near the End of Your wp-config.php File

If you leave this code as it is, then your trash will be emptied every day. Feel free to change the number 1 to some other number, and the trash will be emptied after that number of days.

If you don’t wish to use the trash feature at all, then you should set the number to 0. Deleted posts and pages will then be deleted permanently without being placed in the trash. Make sure you have a backup plugin set up first, just in case you need to restore any accidentally deleted pages.

Don’t forget to save the wp-config.php file once you have made your changes.

Method 3: Stopping WordPress from Automatically Emptying Trash

Do you want to stop WordPress from automatically deleting items from trash? Here is what you need to do.

Simply add this little code snippet in your theme’s functions.php file or a site-specific plugin.

function wpb_remove_schedule_delete() {
    remove_action( 'wp_scheduled_delete', 'wp_scheduled_delete' );
add_action( 'init', 'wpb_remove_schedule_delete' );

This code simply removes the action that deletes trashed items when their time is up.

Now when you send an item to trash, it will remain there until you view your trashed files and manually click on the Empty Trash button.

Manually Empty the Trash

We hope this tutorial helped you learn how to limit or disable automatic empty trash in WordPress. You may also want to learn how to get a free SSL certificate or check out list of must have plugins to grow your site.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit – a collection of WordPress related products and resources that every professional should have!

Reader Interactions

12 CommentsLeave a Reply

  1. Thank you so much. It brought me a big relief. I was able to extend the time for deletion, also disable automatic deletion. Wish you best of luck.

  2. If I add this define(‘EMPTY_TRASH_DAYS’, 1); code to Snippet will trash auto delete after 1 day?

    If no, then tell me a way to set auto delete after 1 day. Thanks

  3. Does the “Stopping WordPress from Automatically Emptying Trash” function in this article affect Custom Post Types as well, stopping the automatic empty trash/purge for everything?

  4. I think this information is wrong. Since when WordPress deletes items from the trash after 30 days? Unaware of this option. Or has now emerged in versions 4.5.1 or 4.5.2?

Leave A Reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.