Reducing Plugin Bloat In WordPress

Who is this for?

  • Freelancers w/ retained clients
  • Agency Developers
  • Developers at large companies

What is the problem?

Plugins CAN and WILL get out of control if you don't have a good plugin policy

What can I do about it? 

STOP Managing Plugins in the Admin

{
...
...
...
	"require": {
		"php": ">=7.0",
		"composer/installers": "^1.0",
		"oscarotero/env": "^1.1.0",
		"roots/wp-password-bcrypt": "^1.0.0",
		"vlucas/phpdotenv": "^2.0.1",
		"wpackagist-plugin/duplicate-post": "^3.2",
		"yoast/wordpress-seo-premium": "12.2",
		"wpackagist-plugin/regenerate-thumbnails": "^2.3",
		"wpackagist-plugin/pantheon-advanced-page-cache": "^0.3.0",
		"wpackagist-plugin/pantheon-hud": "^0.1.2",
		"wpackagist-plugin/query-monitor": "^3.0.1",
		"wpackagist-plugin/redirection":"^4.4",
		"wpackagist-plugin/relevanssi":"4.3.3"
	},
...
...
...
}

You can now control

  • What plugin get's installed
  • What version of that plugin get's installed

They can install/delete/update plugins


// Removing plugin controls from admin
function remove_plugin_controls($actions, $plugin_file, $plugin_data, $context){


  if (array_key_exists('edit', $actions)) {
    unset($actions['edit']);
  }

  if (array_key_exists('deactivate', $actions)) {
	unset($actions['deactivate']);
  }

  if (array_key_exists('activate', $actions)) {
    unset($actions['activate']);
  }

  if (array_key_exists('delete', $actions)) {
    unset($actions['delete']);
  }

  return $actions;

}
add_filter('plugin_action_links', 'remove_plugin_controls', 10, 4);

// Remove bulk action options for managing plugins
function disable_bulk_actions($actions){

  if (array_key_exists('deactivate-selected', $actions)) {
    unset($actions['deactivate-selected']);
  }


  if (array_key_exists('activate-selected', $actions)) {
    unset($actions['activate-selected']);
  }


  if (array_key_exists('delete-selected', $actions)) {
    unset($actions['delete-selected']);
  }


  if (array_key_exists('update-selected', $actions)) {
    unset($actions['update-selected']);
  }
  
}
add_filter('bulk_actions-plugins','disable_bulk_actions');

Reducing Plugin Bloat

By Alex Young

Reducing Plugin Bloat

  • 1,051