| | |
| | | public string $postType; |
| | | public string $singular; |
| | | public string $plural; |
| | | public bool $baseless = false; |
| | | public bool $modify = false; |
| | | public array $labels; |
| | | /** |
| | | * Whether a post type is intended for use publicly either via the admin interface or by front-end users. |
| | |
| | | * An array of taxonomy identifiers that will be registered for the post type. Taxonomies can be registered later with register_taxonomy() or register_taxonomy_for_object_type() . |
| | | * @var array |
| | | */ |
| | | public array $taxonomies; |
| | | public array $taxonomies = []; |
| | | /** |
| | | * Whether there should be post type archives, or if a string, the archive slug to use. |
| | | * Will generate the proper rewrite rules if $rewrite is enabled. Default false. |
| | |
| | | $this->unbased = jvbNoBase($postType); |
| | | $this->postType = jvbCheckBase($postType); |
| | | $this->labels = $this->buildLabels($singular, $plural); |
| | | $this->singular = $singular; |
| | | $this->plural = $plural; |
| | | } |
| | | |
| | | public function register():void |
| | | { |
| | | protected function buildArgs():array { |
| | | $args = array_filter(get_object_vars($this)); |
| | | // error_log('Got Object Vars: '.print_r($args, true)); |
| | | // error_log('Filtered: '.print_r(array_filter($args), true)); |
| | |
| | | } |
| | | |
| | | |
| | | $registered = register_post_type($this->postType, $args); |
| | | return $args; |
| | | } |
| | | |
| | | public function register():void |
| | | { |
| | | $args = $this->buildArgs(); |
| | | |
| | | $registered = true; |
| | | if (!$this->modify) { |
| | | $registered = register_post_type($this->postType, $args); |
| | | } |
| | | |
| | | if (is_wp_error($registered)) { |
| | | JVB()->error()->log('JVBase\registrar\Posts', 'Could not register post type', $registered->get_error_messages()); |
| | | } |
| | |
| | | } |
| | | return $url; |
| | | } |
| | | |
| | | public function modifyWooCommerce() { |
| | | if ($this->modify) { |
| | | $args = $this->buildArgs(); |
| | | unset($args['labels']);; |
| | | $registered = get_post_type_object($this->postType); |
| | | |
| | | foreach ($args as $key => $value) { |
| | | $registered->$key = $value; |
| | | } |
| | | |
| | | $labels = $registered->labels; |
| | | foreach ($this->labels as $key => $value) { |
| | | $labels->$key = $value; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |