static function get_child_classes($base_class, $constant_name)
{
$cache_key = "classes[{$base_class}::{$constant_name}]";
if (!WPLib::is_development()) {
$cache_key = md5($cache_key);
}
if (!($child_classes = self::cache_get($cache_key))) {
WPLib::autoload_all_classes();
$child_classes = array();
foreach (self::site_classes() as $class_name) {
do {
if (!is_subclass_of($class_name, $base_class)) {
continue;
}
if (is_null($constant_value = self::get_constant($constant_name, $class_name))) {
continue;
}
$child_classes[$constant_value] = $class_name;
} while (false);
}
self::cache_set($cache_key, $child_classes);
}
return $child_classes;
}