The release of WordPress 3.7 in October of 2013 made available a feature that some people love and others would love to live without.
The feature in question is automatic updating of the WordPress core for minor releases.
When a minor release becomes available (version 3.9.1, for example), WordPress now has the ability to automatically update the core software – a great thing for the majority of WordPress users out there, but not for everyone.
Why Disable Automatic Updates?
If you use managed hosting to run your WordPress site, the hosting provider probably does updates for you. They would want to make sure that the new version works fine on their particular environment before applying the update. (Chances are that it will work fine, but it is always a good idea to test before you apply, especially for the significant sites that usually use managed hosting).
If you’re using something other than managed hosting, you may be responsible for performing your own updates and might like to have more control over when and how they are performed than the automatic update feature would allow.
If you are running a lot of plugins or a custom theme, you may want to delay updating to the new version of WP until the plugin developers have had a chance to make sure their plugins are working as they should with the latest release.
You may be in one of these situations or another that represents a very valid reason for not wanting the auto update feature to be operating on your site. So how do the rest of us turn this feature off? There are two ways to do it:
- Via a plugin
- Adding some simple pieces of code
Seeing as the plugin is always the easiest way to go, lets start with that.
Note: If you are using a version control system, whether it be Git, Subversion, Mercurial or Bazaar, this feature is currently automatically disabled in WordPress, so you have nothing to worry about.
There’s A Plugin For That
In the WordPress plugin repository you will find a plugin named Advanced Automatic Updates. After installing that and going to the settings page for the plugin, you can easily check off what you would like automatically updated, including major core releases, plugins and themes as well as the default minor releases the original feature was designed for.
As an added bonus, you can also disable the sending of the auto notifications that WordPress delivers to the default site admin or overwrite the admin’s email address to your own if you’d prefer to get them and not concern your client.
The theme update option will only work if you have downloaded your theme from the official WordPress repository.
If you’re using a paid or premium theme that was downloaded from another source like a theme shop or designer’s website, then you’re on your own to update the theme when a new version is released.
Just remember to always back up before you apply the update. Consider that a Public Service Announcement. This condition is the same for either the plugin or code solutions mentioned below.
Use ManageWP for Automatic Update Management
If you want to use the automatic updates built into WordPress but would like to have a bit more control over things, you can manage all the finer details in – you guessed it – ManageWP!
This feature lets you apply WordPress updates to plugins and themes on a per site basis. To get this set up, all you need to do is go to your ManageWP dashboard then go to Manage > Plugins & Themes. From there, you should see a tab called “Auto Updates.”
Then all you need to do is select which plugins and themes you feel are trustworthy enough to be automatically updated. Simple!
Turning Off The Auto Update Feature
But what if you don’t want to install another plugin? The WordPress User Interface doesn’t have a toggle to turn this sort of thing on and off, so you’ll have to get your hands dirty with a bit of code. Trust me, it wont be that bad.
Let’s start with the primary focus of this article, which was to turn off the auto-update feature within WordPress core. All you need to do is add this piece of code to your wp-config.php file:
/* Disable WordPress automatic updates */ define( 'WP_AUTO_UPDATE_CORE', false );
I’d suggest putting this code and any of the other examples we are going to look at here right above the line in your wp-config file that says:
/* That's all, stop editing! Happy blogging. */
(Just a suggestion here, not a hard and fast rule: I like to keep all my “non-standard“ edits of the wp-config file here so I can find them easily. But it’s your choice where you put them as long as they are there.)
Enabling Updates For Major Releases
If you want to simply turn on core updates for both major and minor releases then add this line of code to the wp-config.php file:
/* turn on both minor and major WordPress automatic core updates*/ define('WP_AUTO_UPDATE_CORE', true);
Plugin And Theme Updates
If you want to have your WordPress repository-downloaded themes and plugins updated automatically the code to do that is similar to what we have used so far but we are going to use a filter to enable the updates. (See the note above regarding theme updates and the repository)
To automatically update your plugins this is the code:
add_filter( 'auto_update_plugin', '__return_true' );
And to do the same for themes, use this code:
add_filter( 'auto_update_theme', '__return_true' );
Turning Off All Updates
So, you’ve decided you don’t want any automatic updates happening on your site. You are the master of your domain (and website, and possibly email…but that’s not relevant here) and will be handling all of this update stuff on your own. Here is how you make that happen:
/* I am the captain of this ship, I’ll do my own updates thanks*/ define (‘ AUTOMATIC_UPDATER_DISABLED’, true );
Keep in mind this turns off everything and overwrites any other options you may have turned on, so tread wisely, my friend, and use the power sparingly.
Now that we have all of the pieces of code, we can do a little mixing and matching. For this example, we want to disable core updates but let the themes and plugins enjoy the auto update goodness.
So we would start by using our disable core updates code:
define( 'WP_AUTO_UPDATE_CORE', false );
then add in the plugin and theme update code:
add_filter( 'auto_update_plugin', '__return_true' ); add_filter( 'auto_update_theme', '__return_true' );
Now, for our final trick, we are going to turn off the email notifications that get sent out when an update is completed. This time, though, instead of adding the code to the wp-config.php file, we are going to add this to the functions.php file for the active theme.
/** * Disable the auto generated email sent to the admin after a core update */ apply_filters( 'auto_core_update_send_email', false, $type, $core_update, $result );
And there you have it. You now can control how or if updates to the core, themes and plugins are applied automatically to your WordPress site. And you can also turn off those notification emails as well.