| | |
| | | switch ($type) { |
| | | case 'post': |
| | | $this->addPostFields(); |
| | | //TODO: Add fields to post edit screen |
| | | // add_action('add_meta_boxes', [$this, 'registerPostFields']); |
| | | break; |
| | | case 'term': |
| | |
| | | $field->$property($value); |
| | | } |
| | | |
| | | public function getFields():array |
| | | public function getFields(bool $includeDefaults = true):array |
| | | { |
| | | if (!$includeDefaults) { |
| | | $added = array_keys(match($this->type) { |
| | | 'post' => $this->defaultPostFields(), |
| | | 'term' => $this->defaultTermFields(), |
| | | 'user' => $this->defaultUserFields(), |
| | | }); |
| | | $fields = array_filter($this->fields, function($field) use ($added) { |
| | | return !in_array($field, $added); |
| | | }, ARRAY_FILTER_USE_KEY); |
| | | return array_filter($fields, function($field) { |
| | | return !$field->isHidden(); |
| | | }); |
| | | } |
| | | return $this->fields; |
| | | } |
| | | |