WPLib::site_classes PHP Method

site_classes() static public method

Return the list of classes declared after WPLib first loads.
static public site_classes ( ) : array
return array
    static function site_classes()
    {
        if (!($site_classes = self::cache_get($cache_key = 'site_classes'))) {
            /**
             * Make sure we have all classes loaded.
             */
            self::autoload_all_classes();
            $site_classes = array_reverse(array_slice(get_declared_classes(), self::$_non_app_class_count));
            $site_classes = array_filter($site_classes, function ($element) {
                /*
                 * Strip out WordPress core classes
                 */
                return !preg_match('#^(WP|wp)_?#', $element);
            });
            self::cache_set($cache_key, $site_classes);
        }
        return $site_classes;
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * @return WPLib_Theme_Base
  */
 static function theme()
 {
     if (!self::$_theme) {
         foreach (WPLib::site_classes() as $class_name) {
             if (is_subclass_of($class_name, 'WPLib_Theme_Base')) {
                 /*
                  * Will create instance of FIRST class found that subclasses WPLib_Theme_Base.
                  * That means sites should ONLY have ONE subclass of WPLib_Theme_Base.
                  */
                 self::$_theme = new $class_name();
                 break;
             }
         }
     }
     if (!self::$_theme) {
         self::$_theme = new WPLib_Theme_Default();
     }
     return self::$_theme;
 }
All Usage Examples Of WPLib::site_classes