protected function get_post_type_supports() { $supports = ['custom-fields']; if (method_exists($this, 'remove')) { $output = $this->remove(); $output = is_string($output) ? [$output] : $output; $output = is_array($output) ? $output : []; $output = array_filter($output, 'is_string'); $supports = array_merge($supports, $output); } $parent_class = get_parent_class($this); $parent_remove = method_exists($parent_class, 'remove'); while ($parent_remove) { $parent = new $parent_class(); $output = $parent->remove(); $output = is_string($output) ? [$output] : $output; $output = is_array($output) ? $output : []; $output = array_filter($output, 'is_string'); $supports = array_merge($supports, $output); $parent_class = get_parent_class($parent_class); $parent_remove = method_exists($parent_class, 'remove'); } return $supports; }