<?php

namespace Booktics\Abstracts;

abstract class Taxonomy {

    /**
     * Register the taxonomy using WordPress register_taxonomy function
     *
     * @return void
     */
    public function register() {
        register_taxonomy( $this->get_name(), $this->get_obj_type(), $this->get_args() );
    }

    /**
     * Get taxonomy name
     *
     * @return string
     */
    abstract public function get_name();

    /**
     * Get taxonomy object type
     *
     * @return string|array
     */
    abstract public function get_obj_type();

    /**
     * Get taxonomy arguments
     *
     * @return array
     */
    abstract public function get_args();
}
