my_theme_register_required_plugins

Register the required plugins for this theme.

Description

my_theme_register_required_plugins(); 

In this example, we register two plugins - one included with the TGMPA library and one from the .org repo.

The variable passed to tgmpa_register_plugins() should be an array of plugin arrays.

This function is hooked into tgmpa_init, which is fired within the TGM_Plugin_Activation class constructor.


Usage

  1. if ( !function_exists( 'my_theme_register_required_plugins' ) ) { 
  2. require_once '/functions/activate_plugin.php'; 
  3.  
  4.  
  5. // NOTICE! Understand what this does before running. 
  6. $result = my_theme_register_required_plugins(); 
  7.  

Defined (1)

The function is defined in the following location(s).

/functions/activate_plugin.php  
  1. function my_theme_register_required_plugins() { 
  2.  
  3. /** 
  4. * Array of plugin arrays. Required keys are name and slug. 
  5. * If the source is NOT from the .org repo, then source is also required. 
  6. */ 
  7. $plugins = array( 
  8.  
  9. // This is an example of how to include a plugin pre-packaged with a theme 
  10. array( 
  11. 'name' => 'Pluginterest by Themeshock (Full Version)', // The plugin name 
  12. 'slug' => 'pinterest-plugin-by-themeshock-premium', // The plugin slug (typically the folder name) 
  13. 'source' => 'http://www.themeshock.com/downs/pinterest-plugin-by-themeshock-premium.zip', // The plugin source 
  14. 'required' => true, // If false, the plugin is only 'recommended' instead of required 
  15. 'version' => '1.0', // E.g. 1.0.0. If set, the active plugin must be this version or higher, otherwise a notice is presented 
  16. 'force_activation' => false, // If true, plugin is activated upon theme activation and cannot be deactivated until theme switch 
  17. 'force_deactivation' => false, // If true, plugin is deactivated upon theme switch, useful for theme-specific plugins 
  18. 'external_url' => '', // If set, overrides default API URL and points to an external URL 
  19. ),  
  20.  
  21. // This is an example of how to include a plugin from the WordPress Plugin Repository 
  22. /** array( 
  23. 'name' => 'BuddyPress',  
  24. 'slug' => 'buddypress',  
  25. 'required' => false,  
  26. )*/NULL,  
  27.  
  28. ); 
  29.  
  30. // Change this to your theme text domain, used for internationalising strings 
  31. $theme_text_domain = 'tgmpa'; 
  32.  
  33. /** 
  34. * Array of configuration settings. Amend each line as needed. 
  35. * If you want the default strings to be available under your own theme domain,  
  36. * leave the strings uncommented. 
  37. * Some of the strings are added into a sprintf, so see the comments at the 
  38. * end of each line for what each argument will be. 
  39. */ 
  40. $config = array( 
  41. 'domain' => $theme_text_domain, // Text domain - likely want to be the same as your theme. 
  42. 'default_path' => '', // Default absolute path to pre-packaged plugins 
  43. 'parent_menu_slug' => 'themes.php', // Default parent menu slug 
  44. 'parent_url_slug' => 'themes.php', // Default parent URL slug 
  45. 'menu' => 'install-required-plugins', // Menu slug 
  46. 'has_notices' => true, // Show admin notices or not 
  47. 'is_automatic' => true, // Automatically activate plugins after installation or not 
  48. 'message' => '', // Message to output right before the plugins table 
  49. 'strings' => array( 
  50. 'page_title' => __( 'Install Required Plugins', $theme_text_domain ),  
  51. 'menu_title' => __( 'Install Plugins', $theme_text_domain ),  
  52. 'installing' => __( 'Installing Plugin: %s', $theme_text_domain ), // %1$s = plugin name 
  53. 'oops' => __( 'Something went wrong with the plugin API.', $theme_text_domain ),  
  54. 'notice_can_install_required' => _n_noop( 'You can donwload our premium plugin Pluginterest for free, so that you can create cool pinterest-like grids with your posts. <a href="http://www.wordpressthemeshock.com/">by themeshock.com</a>  <a href="http://www.wordpressthemeshock.com/pinterest-wordpress/">More info about this plugin</a>', 'You can donwload our premium plugin Pluginterest for free, so that you can create cool pinterest-like grids with your posts. <a href="http://www.wordpressthemeshock.com/">by themeshock.com</a>  <a href="http://www.wordpressthemeshock.com/pinterest-wordpress/">More info about this plugin</a>' ), // %1$s = plugin name(s) 
  55. 'notice_can_install_recommended' => _n_noop( 'This theme recommends the following plugin: %1$s.', 'This theme recommends the following plugins: %1$s.' ), // %1$s = plugin name(s) 
  56. 'notice_cannot_install' => _n_noop( 'Sorry, but you do not have the correct permissions to install the %s plugin. Contact the administrator of this site for help on getting the plugin installed.', 'Sorry, but you do not have the correct permissions to install the %s plugins. Contact the administrator of this site for help on getting the plugins installed.' ), // %1$s = plugin name(s) 
  57. 'notice_can_activate_required' => _n_noop( 'The following required plugin is currently inactive: %1$s.', 'The following required plugins are currently inactive: %1$s.' ), // %1$s = plugin name(s) 
  58. 'notice_can_activate_recommended' => _n_noop( 'The following recommended plugin is currently inactive: %1$s.', 'The following recommended plugins are currently inactive: %1$s.' ), // %1$s = plugin name(s) 
  59. 'notice_cannot_activate' => _n_noop( 'Sorry, but you do not have the correct permissions to activate the %s plugin. Contact the administrator of this site for help on getting the plugin activated.', 'Sorry, but you do not have the correct permissions to activate the %s plugins. Contact the administrator of this site for help on getting the plugins activated.' ), // %1$s = plugin name(s) 
  60. 'notice_ask_to_update' => _n_noop( 'The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: %1$s.', 'The following plugins need to be updated to their latest version to ensure maximum compatibility with this theme: %1$s.' ), // %1$s = plugin name(s) 
  61. 'notice_cannot_update' => _n_noop( 'Sorry, but you do not have the correct permissions to update the %s plugin. Contact the administrator of this site for help on getting the plugin updated.', 'Sorry, but you do not have the correct permissions to update the %s plugins. Contact the administrator of this site for help on getting the plugins updated.' ), // %1$s = plugin name(s) 
  62. 'install_link' => _n_noop( 'Begin installing plugin', 'Begin installing plugins' ),  
  63. 'activate_link' => _n_noop( 'Activate installed plugin', 'Activate installed plugins' ),  
  64. 'return' => __( 'Return to Required Plugins Installer', $theme_text_domain ),  
  65. 'plugin_activated' => __( 'Plugin activated successfully.', $theme_text_domain ),  
  66. 'complete' => __( 'All plugins installed and activated successfully. %s', $theme_text_domain ), // %1$s = dashboard link 
  67. 'nag_type' => 'updated' // Determines admin notice type - can only be 'updated' or error 
  68. ); 
  69.  
  70. tgmpa( $plugins, $config ); 
  71.