Example #1
0
/**
 * Helper function to register the actual taxonomy.
 *
 * @param array $taxonomy Taxonomy array to register.
 *
 * @return null Result of register_taxonomy.
 */
function cptui_register_single_taxonomy($taxonomy = array())
{
    $labels = array('name' => $taxonomy['label'], 'singular_name' => $taxonomy['singular_label']);
    $preserved = cptui_get_preserved_keys('taxonomies');
    foreach ($taxonomy['labels'] as $key => $label) {
        if (!empty($label)) {
            $labels[$key] = $label;
        } elseif (empty($label) && in_array($key, $preserved)) {
            $labels[$key] = cptui_get_preserved_label('taxonomies', $key, $taxonomy['label'], $taxonomy['singular_label']);
        }
    }
    $rewrite = get_disp_boolean($taxonomy['rewrite']);
    if (false !== get_disp_boolean($taxonomy['rewrite'])) {
        $rewrite = array();
        $rewrite['slug'] = !empty($taxonomy['rewrite_slug']) ? $taxonomy['rewrite_slug'] : $taxonomy['name'];
        $rewrite['with_front'] = 'false' === disp_boolean($taxonomy['rewrite_withfront']) ? false : true;
        $rewrite['hierarchical'] = 'true' === disp_boolean($taxonomy['rewrite_hierarchical']) ? true : false;
    }
    if (in_array($taxonomy['query_var'], array('true', 'false', '0', '1'))) {
        $taxonomy['query_var'] = get_disp_boolean($taxonomy['query_var']);
    }
    if (true === $taxonomy['query_var'] && !empty($taxonomy['query_var_slug'])) {
        $taxonomy['query_var'] = $taxonomy['query_var_slug'];
    }
    $show_admin_column = !empty($taxonomy['show_admin_column']) && false !== get_disp_boolean($taxonomy['show_admin_column']) ? true : false;
    $args = array('labels' => $labels, 'label' => $taxonomy['label'], 'hierarchical' => get_disp_boolean($taxonomy['hierarchical']), 'show_ui' => get_disp_boolean($taxonomy['show_ui']), 'query_var' => $taxonomy['query_var'], 'rewrite' => $rewrite, 'show_admin_column' => $show_admin_column);
    $object_type = !empty($taxonomy['object_types']) ? $taxonomy['object_types'] : '';
    /**
     * Filters the arguments used for a taxonomy right before registering.
     *
     * @since 1.0.0
     *
     * @param array  $args Array of arguments to use for registering taxonomy.
     * @param string $value Taxonomy slug to be registered.
     */
    $args = apply_filters('cptui_pre_register_taxonomy', $args, $taxonomy['name']);
    return register_taxonomy($taxonomy['name'], $object_type, $args);
}
/**
 * Helper function to register the actual taxonomy.
 *
 * @since 1.0.0
 *
 * @internal
 *
 * @param array $taxonomy Taxonomy array to register.
 * @return null Result of register_taxonomy.
 */
function cptui_register_single_taxonomy($taxonomy = array())
{
    $labels = array('name' => $taxonomy['label'], 'singular_name' => $taxonomy['singular_label']);
    $description = '';
    if (!empty($taxonomy['description'])) {
        $description = $taxonomy['description'];
    }
    $preserved = cptui_get_preserved_keys('taxonomies');
    foreach ($taxonomy['labels'] as $key => $label) {
        if (!empty($label)) {
            $labels[$key] = $label;
        } elseif (empty($label) && in_array($key, $preserved)) {
            $labels[$key] = cptui_get_preserved_label('taxonomies', $key, $taxonomy['label'], $taxonomy['singular_label']);
        }
    }
    $rewrite = get_disp_boolean($taxonomy['rewrite']);
    if (false !== get_disp_boolean($taxonomy['rewrite'])) {
        $rewrite = array();
        $rewrite['slug'] = !empty($taxonomy['rewrite_slug']) ? $taxonomy['rewrite_slug'] : $taxonomy['name'];
        $rewrite['with_front'] = 'false' === disp_boolean($taxonomy['rewrite_withfront']) ? false : true;
        $rewrite['hierarchical'] = 'true' === disp_boolean($taxonomy['rewrite_hierarchical']) ? true : false;
    }
    if (in_array($taxonomy['query_var'], array('true', 'false', '0', '1'))) {
        $taxonomy['query_var'] = get_disp_boolean($taxonomy['query_var']);
    }
    if (true === $taxonomy['query_var'] && !empty($taxonomy['query_var_slug'])) {
        $taxonomy['query_var'] = $taxonomy['query_var_slug'];
    }
    $public = !empty($taxonomy['public']) && false === get_disp_boolean($taxonomy['public']) ? false : true;
    $show_admin_column = !empty($taxonomy['show_admin_column']) && false !== get_disp_boolean($taxonomy['show_admin_column']) ? true : false;
    $show_in_menu = !empty($taxonomy['show_in_menu']) && false !== get_disp_boolean($taxonomy['show_in_menu']) ? true : false;
    if (empty($taxonomy['show_in_menu'])) {
        $show_in_menu = get_disp_boolean($taxonomy['show_ui']);
    }
    $show_in_nav_menus = !empty($taxonomy['show_in_nav_menus']) && false !== get_disp_boolean($taxonomy['show_in_nav_menus']) ? true : false;
    if (empty($taxonomy['show_in_nav_menus'])) {
        $show_in_nav_menus = $public;
    }
    $show_in_rest = !empty($taxonomy['show_in_rest']) && false !== get_disp_boolean($taxonomy['show_in_rest']) ? true : false;
    $show_in_quick_edit = !empty($taxonomy['show_in_quick_edit']) && false !== get_disp_boolean($taxonomy['show_in_quick_edit']) ? true : false;
    $rest_base = null;
    if (!empty($taxonomy['rest_base'])) {
        $rest_base = $taxonomy['rest_base'];
    }
    $args = array('labels' => $labels, 'label' => $taxonomy['label'], 'description' => $description, 'public' => $public, 'hierarchical' => get_disp_boolean($taxonomy['hierarchical']), 'show_ui' => get_disp_boolean($taxonomy['show_ui']), 'show_in_menu' => $show_in_menu, 'show_in_nav_menus' => $show_in_nav_menus, 'query_var' => $taxonomy['query_var'], 'rewrite' => $rewrite, 'show_admin_column' => $show_admin_column, 'show_in_rest' => $show_in_rest, 'rest_base' => $rest_base, 'show_in_quick_edit' => $show_in_quick_edit);
    $object_type = !empty($taxonomy['object_types']) ? $taxonomy['object_types'] : '';
    /**
     * Filters the arguments used for a taxonomy right before registering.
     *
     * @since 1.0.0
     * @since 1.3.0 Added original passed in values array
     *
     * @param array  $args     Array of arguments to use for registering taxonomy.
     * @param string $value    Taxonomy slug to be registered.
     * @param array  $taxonomy Original passed in values for taxonomy.
     */
    $args = apply_filters('cptui_pre_register_taxonomy', $args, $taxonomy['name'], $taxonomy);
    return register_taxonomy($taxonomy['name'], $object_type, $args);
}