In modern WordPress era things about theme and plugin repositories are far from ideal.
We don’t have centralized “app store” in WordPress world (similar to Apple Store and Google Play Store of mobile platforms) – that’s why we can list at least 3 different branches as defragmented segments:
- WordPress.org – where only free plugins are allowed.
- ThemeForest+Codecanyon – which doesn’t have own repository, but by using some 3rd party tools it is possible to have repository like channel.
- Premium self-hosted plugin/theme markets – Each of them has their own repositories.
Alongside with defragmantation this issue has another negative side – WP-Admin checks updates at background, with some transient-expire logic. When you have just one repository(official one – wordpress.org) – that’s not a problem. But when you are using different 3rd party plugins, it causes nightmare.
Few months ago one of my clients asked me to check why his wp-admin works so slowly.
First as a quick check i made quick monitoring with Query Monitor plugin – and discovered that connecting to external hosts takes 4-10 seconds (!) each time – Some of repositories had a problem with response time – and that was affecting whole wp-admin performance.
So i decided to disable Update Checking in wp-admin, excluding Plugins.php page itself.
I wrote such small snippet and put it to functions.php of the theme:
if(is_admin() and strpos($_SERVER["REQUEST_URI"],'plugins.php')===false){
remove_all_filters('pre_set_site_transient_update_plugins');
remove_all_filters('site_transient_update_plugins');
remove_all_actions('pre_set_site_transient_update_plugins');
remove_all_actions('site_transient_update_plugins');
}
And that did the JOB. Update checking occurs when the client enters to plugins.php to see of there is an update. And that’s exactly what we needed.