/**
  * Return the single instance of this class
  *
  * @return object Instance of this class
  */
 static function get_instance()
 {
     if (!isset(self::$_instance)) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
 /**
  * Hook into WordPress
  *
  * @return null
  */
 public function hook_into_wordpress()
 {
     // Only run the following in the admin, the REAL admin--not admin ajax
     if (is_admin() && (!defined('DOING_AJAX') || !DOING_AJAX)) {
         // Grab the single instance of the admin class
         $dts_admin = DTS_Admin::get_instance();
         // Create our plugin admin page under the 'Appearance' menu
         add_action('admin_menu', array($dts_admin, 'admin_menu'), 10, 0);
         // Check if we need to save any form data that was submitted
         add_action('load-appearance_page_device-themes', array($dts_admin, 'load'), 10, 0);
         // Display a 'Settings' link with the plugin in the plugins list
         add_filter('plugin_action_links', array($this, 'device_theme_switcher_settings_link'), 10, 2);
         // Add admin scripts and styles used to display the admin settings view
         add_action('admin_init', array($this, 'admin_enqueue_scripts'));
     } else {
         // is_admin()
         // Grab the single instance of the switcher class
         // And make it available globally for use in themes/other plugins
         global $dts;
         $dts = DTS_Switcher::get_instance();
         // Hook into the template output function with a filter and change the template delivered if need be
         add_filter('template', array($dts, 'deliver_template'), 10, 0);
         // Hook into the stylesheet output function with a filter and change the stylesheet delivered if need be
         add_filter('stylesheet', array($dts, 'deliver_stylesheet'), 10, 0);
     }
     // if is_admin()
     // Load the plugin widgets
     add_action('widgets_init', array($this, 'register_widgets'), 10, 0);
     // Add our shortcodes
     DTS_Shortcode::get_instance()->add_shortcodes();
 }