/** * Get instance * * @static * @since 0.1.0 * @param array $args Arguments. * * @return Icon_Picker_Types_Registry */ public static function instance($args = array()) { if (is_null(self::$instance)) { self::$instance = new self($args); } return self::$instance; }
/** * Register default icon types * * @since 0.1.0 * @access protected */ protected function register_default_types() { require_once "{$this->dir}/includes/fontpack.php"; Icon_Picker_Fontpack::instance(); /** * Allow themes/plugins to disable one or more default types * * @since 0.1.0 * @param array $default_types Default icon types. */ $default_types = array_filter((array) apply_filters('icon_picker_default_types', $this->default_types)); /** * Validate filtered default types */ $default_types = array_intersect($this->default_types, $default_types); if (empty($default_types)) { return; } foreach ($default_types as $filename => $class_suffix) { $class_name = "Icon_Picker_Type_{$class_suffix}"; require_once "{$this->dir}/includes/types/{$filename}.php"; $this->registry->add(new $class_name()); } }
/** * Initialize * * 1. Get registered types from Icon Picker * 2. Load settings * 3. Load front-end functionalities * * @since 0.1.0 * @since 0.9.0 Hook into `icon_picker_init`. * @wp_hook action icon_picker_init * @link http://codex.wordpress.org/Plugin_API/Action_Reference */ public static function _init() { /** * Allow themes/plugins to add/remove icon types * * @since 0.1.0 * @param array $types Icon types */ self::$data['types'] = apply_filters('menu_icons_types', Icon_Picker_Types_Registry::instance()->types); // Nothing to do if there are no icon types registered. if (empty(self::$data['types'])) { if (WP_DEBUG) { trigger_error(esc_html__('Menu Icons: No registered icon types found.', 'menu-icons')); } return; } // Load settings. require_once self::$data['dir'] . 'includes/settings.php'; Menu_Icons_Settings::init(); // Load front-end functionalities. if (!is_admin()) { require_once self::$data['dir'] . '/includes/front.php'; Menu_Icons_Front_End::init(); } do_action('menu_icons_loaded'); }
/** * Register Genericons type for Icon Picker * * @action icon_picker_types_registry_init * @param Icon_Picker_Types_Registry $ip_registry Icon_Picker_Types_Registry instance. * @return void */ function icon_picker_genericons_register(Icon_Picker_Types_Registry $ip_registry) { require_once Icon_Picker::instance()->dir . '/includes/types/font.php'; require_once dirname(__FILE__) . '/genericons.php'; $ip_registry->add(new Icon_Picker_Type_Genericons()); }