Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
25 Million+
Websites using our plugins
Years of WordPress experience
WordPress tutorials
by experts

How to Limit or Disable Automatic Empty Trash in WordPress

Editorial Note: We earn a commission from partner links on WPBeginner. Commissions do not affect our editors' opinions or evaluations. Learn more about Editorial Process.

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. However, 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 Disable Auto Empty Trash in WordPress

What Is Trash in WordPress?

WordPress added a trash feature way back in 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. Anyone can delete a post accidentally. That’s why WordPress makes it easy to restore deleted posts and pages.

You can view them by going to Posts » All Posts from your WordPress dashboard and then clicking the ‘Trash’ option.

View trashed posts

Your WordPress website will automatically delete anything in the trash after 30 days so that it doesn’t pile up.

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.

Video Tutorial

Subscribe to WPBeginner

If you’d prefer written instructions, please keep reading.

Method 1: Changing When WordPress Empties Trash 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.

Note: The Change Empty Trash Time plugin’s repository page says that it has not been tested with the current version of WordPress. We have tested it and can verify that it still works for us, but we cannot guarantee no issue with arise with your site. Use your own discretion when installing it.

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 (in days)’ setting.

Empty trash can after certain days

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 Empties Trash 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 the wp-config.php file in WordPress.

You can simply add the following line of code to your wp-config.php file.

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

You should paste it near the end of the file, just before the line that says, ‘That’s all, stop editing! Happy blogging.’

Auto trash code in wpconfig

If you leave this code snippet 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 the trash?

Simply add the little code snippet below to your theme’s functions.php file. If you’re not used to editing your core WordPress files, check out our guide on copying and pasting code snippets from the web.

Now, we don’t generally recommend editing your site’s theme files directly. The slightest mistake can break your website. A better way of adding code snippets is by using WPCode.

First, you’ll need to install and activate the free WPCode plugin. For more details, please see our guide on how to install a plugin.

After that, you can go to Code Snippets » + Add Snippet from your WordPress dashboard and then select the ‘Add Your Custom Code (New Snippet) option.

Adding Your Custom Code in WPCode

Next, you will need to enter a title for your code snippet.

Then, copy this snippet and paste it into the box labeled ‘Code Preview.’

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.

Don’t forget to click the ‘Code Type’ dropdown menu and select the ‘PHP Snippet’ option.

Enter a title for code

After that, you can scroll down to the ‘Insertion’ section to view more options, such as how and where you’d like to insert the code.

We recommend using the default options. The plugin will Auto Insert the code and run it everywhere on your site.

Select the default Auto Insert method in WPCode

You can then click the toggle to make your code snippet Active.

Once that’s done, simply click the ‘Save Snippet’ button at the top.

Save and activate code snippet WPCode

Now, when you send an item to the trash, it will remain there until you view your trashed files.

From here, you can manually click on the ‘Empty Trash’ button to delete any post.

Click empty trash button

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 our 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. Here's our editorial process.

Editorial Staff

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

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

13 CommentsLeave a Reply

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Mahmud says

    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.

  3. Mohsin Alam says

    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

  4. Ryan says

    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?

  5. Gilvan says

    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.