コード例 #1
0
 public static function findByUsage($contextType = null, $contentSizes = array())
 {
     self::initialize();
     $widget_layouts = array();
     // get_stylsheet_directory() returns child theme path.
     $directory = get_stylesheet_directory() . "/views/widgets";
     $acf_files = self::traverseHierarchy($directory);
     $acf_files = array_merge($acf_files, self::traversePlugins());
     // Order files aphabetically.
     usort($acf_files, function ($a, $b) {
         include $a;
         $compareA = strtolower($widget_config['label']);
         include $b;
         $compareB = strtolower($widget_config['label']);
         return strcmp($compareA, $compareB);
     });
     foreach ($acf_files as $file) {
         include $file;
         // If contextType is null, or if contentType matches, add widget to list
         if (!$contextType || in_array($contextType, $widget_config["content-types"]) && (count($contentSizes) === 0 || in_array($contentSizes, $widget_config["content-sizes"]))) {
             include_once "BaseWidget.php";
             $widget_config = BaseWidget::add_extras($widget_config);
             $widget_layouts[] = $widget_config;
         }
     }
     return $widget_layouts;
 }