/** * 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); }