active = acf_get_setting('acfe/modules/taxonomies'); $this->settings = 'modules.taxonomies'; $this->post_type = 'acfe-dt'; $this->label = 'Taxonomy Name'; $this->textdomain = 'ACF Extended: Taxonomies'; $this->tool = 'acfe_dynamic_taxonomies_export'; $this->tools = array('php', 'json'); $this->columns = array( 'acfe-name' => __('Name', 'acf'), 'acfe-post-types' => __('Post Types', 'acf'), 'acfe-terms' => __('Terms', 'acf'), ); } /* * Actions */ function actions(){ // Features add_action('admin_footer-edit-tags.php', array($this, 'admin_config')); add_filter('get_terms_args', array($this, 'admin_archive_posts'), 10, 2); add_action('pre_get_posts', array($this, 'front_archive_posts')); add_filter('template_include', array($this, 'front_template'), 999); // Validate add_filter('acf/validate_value/name=acfe_dt_name', array($this, 'validate_name'), 10, 4); add_filter('acf/update_value/name=acfe_dt_name', array($this, 'update_name'), 10, 3); // Save add_filter('acfe/taxonomy/save_args', array($this, 'save_args'), 10, 3); add_action('acfe/taxonomy/save', array($this, 'save'), 10, 3); // Import add_action('acfe/taxonomy/import_fields', array($this, 'import_fields'), 10, 3); add_action('acfe/taxonomy/import', array($this, 'after_import'), 10, 2); // Multilang add_action('acfe/taxonomy/save', array($this, 'l10n_save'), 10, 3); add_filter('acfe/taxonomy/register', array($this, 'l10n_register'), 10, 2); } /* * Get Name */ function get_name($post_id){ return get_field('acfe_dt_name', $post_id); } /* * Init */ function init(){ $this->register_post_type(); $this->register_user_taxonomies(); } /* * Register Post Type */ function register_post_type(){ $capability = acf_get_setting('capability'); if(!acf_get_setting('show_admin')) $capability = false; register_post_type($this->post_type, array( 'label' => 'Taxonomies', 'description' => 'Taxonomies', 'labels' => array( 'name' => 'Taxonomies', 'singular_name' => 'Taxonomy', 'menu_name' => 'Taxonomies', 'edit_item' => 'Edit Taxonomy', 'add_new_item' => 'New Taxonomy', ), 'supports' => array('title'), 'hierarchical' => false, 'public' => false, 'show_ui' => true, 'show_in_menu' => 'tools.php', 'menu_icon' => 'dashicons-layout', 'show_in_admin_bar' => false, 'show_in_nav_menus' => false, 'can_export' => false, 'has_archive' => false, 'rewrite' => false, 'exclude_from_search' => true, 'publicly_queryable' => false, 'capabilities' => array( 'publish_posts' => $capability, 'edit_posts' => $capability, 'edit_others_posts' => $capability, 'delete_posts' => $capability, 'delete_others_posts' => $capability, 'read_private_posts' => $capability, 'edit_post' => $capability, 'delete_post' => $capability, 'read_post' => $capability, ), 'acfe_admin_orderby' => 'title', 'acfe_admin_order' => 'ASC', 'acfe_admin_ppp' => 999, )); } /* * Register User Taxonomies */ function register_user_taxonomies(){ $settings = apply_filters('acfe/taxonomy/prepare_register', acfe_get_settings($this->settings)); if(empty($settings)) return; foreach($settings as $name => $args){ // Bail early if(empty($name) || taxonomy_exists($name)) continue; // Filters $args = apply_filters("acfe/taxonomy/register", $args, $name); $args = apply_filters("acfe/taxonomy/register/name={$name}", $args, $name); if($args === false) continue; // Extract Post Types $post_types = acf_extract_var($args, 'post_types', array()); // Register register_taxonomy($name, $post_types, $args); // Filter Admin: Posts Per Page add_filter("edit_{$name}_per_page", array($this, 'admin_archive_ppp')); } } /* * Post Screen */ function post_screen(){ flush_rewrite_rules(); } /* * Edit Columns HTML */ function edit_columns_html($column, $post_id){ switch($column){ // Name case 'acfe-name': echo '' . $this->get_name($post_id) . ''; break; // Post Types case 'acfe-post-types': $pt = '—'; $get_post_types = acf_get_array(get_field('post_types', $post_id)); if(!empty($get_post_types)){ $post_types = array(); foreach($get_post_types as $post_type){ if(!post_type_exists($post_type)) continue; $post_types[] = $post_type; } if(!empty($post_types)){ $post_types_labels = acf_get_pretty_post_types($post_types); if(!empty($post_types_labels)){ $pt = implode(', ', $post_types_labels); } } } echo $pt; break; // Terms case 'acfe-terms': // vars $c = '—'; $name = $this->get_name($post_id); if(taxonomy_exists($name)){ $count = wp_count_terms($name, array( 'hide_empty' => false )); if(!is_wp_error($count) && !empty($count)){ $c = '' . $count . ''; } } echo $c; break; } } /* * Edit Row Actions View */ function edit_row_actions_view($post, $name){ $view = "edit-tags.php?taxonomy={$name}"; $post_types = acf_get_array(get_field('post_types', $post->ID)); if(isset($post_types[0])) $view .= "&post_type={$post_types[0]}"; return '' . __('View') . ''; } /* * Admin Config Button */ function admin_config(){ if(!acf_current_user_can_admin()) return; // Get taxonomy global $taxnow; // Check taxonomy $taxonomy = $taxnow; if(empty($taxonomy)) return; // Taxonomy object $taxonomy_obj = get_taxonomy($taxonomy); if(!isset($taxonomy_obj->acfe_admin_ppp)) return; // Get Dynamic Post Type Post $acfe_dt_post_type = get_page_by_path($taxonomy, 'OBJECT', $this->post_type); if(empty($acfe_dt_post_type)) return; ?> acfe_admin_orderby) && !empty($taxonomy_obj->acfe_admin_orderby)); $acfe_admin_order = (isset($taxonomy_obj->acfe_admin_order) && !empty($taxonomy_obj->acfe_admin_order)); if($acfe_admin_orderby && (!isset($_REQUEST['orderby']) || empty($_REQUEST['orderby']))) $args['orderby'] = $taxonomy_obj->acfe_admin_orderby; if($acfe_admin_order && (!isset($_REQUEST['order']) || empty($_REQUEST['order']))) $args['order'] = $taxonomy_obj->acfe_admin_order; return $args; } /* * Admin: Archive Posts Per Page */ function admin_archive_ppp($ppp){ global $pagenow; if($pagenow !== 'edit-tags.php') return $ppp; $taxonomy = $_GET['taxonomy']; if(empty($taxonomy)) return $ppp; $taxonomy_obj = get_taxonomy($taxonomy); if(!isset($taxonomy_obj->acfe_admin_ppp) || empty($taxonomy_obj->acfe_admin_ppp)) return $ppp; // Check if user has a screen option if(!empty(get_user_option("edit_{$taxonomy}_per_page"))) return $ppp; return $taxonomy_obj->acfe_admin_ppp; } /* * Front: Archive Posts */ function front_archive_posts($query){ if(is_admin() || !$query->is_main_query() || !is_tax()) return; $term_obj = $query->get_queried_object(); if(!is_a($term_obj, 'WP_Term')) return; $taxonomy = $term_obj->taxonomy; $taxonomy_obj = get_taxonomy($taxonomy); $acfe_single_ppp = (isset($taxonomy_obj->acfe_single_ppp) && !empty($taxonomy_obj->acfe_single_ppp)); $acfe_single_orderby = (isset($taxonomy_obj->acfe_single_orderby) && !empty($taxonomy_obj->acfe_single_orderby)); $acfe_single_order = (isset($taxonomy_obj->acfe_single_order) && !empty($taxonomy_obj->acfe_single_order)); if($acfe_single_ppp) $query->set('posts_per_page', $taxonomy_obj->acfe_single_ppp); if($acfe_single_orderby) $query->set('orderby', $taxonomy_obj->acfe_single_orderby); if($acfe_single_order) $query->set('order', $taxonomy_obj->acfe_single_order); } /* * Front: Template */ function front_template($template){ if(!is_tax() && !is_category() && !is_tag()) return $template; if(!isset(get_queried_object()->taxonomy)) return $template; $taxonomy_obj = get_queried_object()->taxonomy; foreach(get_taxonomies(array('public' => true), 'objects') as $taxonomy){ if($taxonomy_obj !== $taxonomy->name || !isset($taxonomy->acfe_single_template)) continue; if($locate = locate_template(array($taxonomy->acfe_single_template))) return $locate; } return $template; } /* * Validate Name */ function validate_name($valid, $value, $field, $input){ if(!$valid) return $valid; // Reserved WP Taxonomies // https://codex.wordpress.org/Function_Reference/register_taxonomy#Reserved_Terms $exclude = array( 'attachment', 'attachment_id', 'author', 'author_name', 'calendar', 'cat', 'category', 'category__and', 'category__in', 'category__not_in', 'category_name', 'comments_per_page', 'comments_popup', 'customize_messenger_channel', 'customized', 'cpage', 'day', 'debug', 'error', 'exact', 'feed', 'fields', 'hour', 'link_category', 'm', 'minute', 'monthnum', 'more', 'name', 'nav_menu', 'nonce', 'nopaging', 'offset', 'order', 'orderby', 'p', 'page', 'page_id', 'paged', 'pagename', 'pb', 'perm', 'post', 'post__in', 'post__not_in', 'post_format', 'post_mime_type', 'post_status', 'post_tag', 'post_type', 'posts', 'posts_per_archive_page', 'posts_per_page', 'preview', 'robots', 's', 'search', 'second', 'sentence', 'showposts', 'static', 'subpost', 'subpost_id', 'tag', 'tag__and', 'tag__in', 'tag__not_in', 'tag_id', 'tag_slug__and', 'tag_slug__in', 'taxonomy', 'tb', 'term', 'theme', 'type', 'w', 'withcomments', 'withoutcomments', 'year', ); $exclude = array_merge($exclude, acfe_get_setting('reserved_taxonomies', array())); // Reserved Names if(in_array($value, $exclude)) return __('This taxonomy name is reserved'); // Editing Current Dynamic Taxonomy $current_post_id = acf_maybe_get_POST('post_ID'); if(!empty($current_post_id)){ $current_name = get_field($field['name'], $current_post_id); if($value === $current_name) return $valid; } // Check existing WP Taxonomies global $wp_taxonomies; if(!empty($wp_taxonomies)){ foreach($wp_taxonomies as $taxonomy){ if($value !== $taxonomy->name) continue; $valid = __('This taxonomy name already exists'); } } return $valid; } /* * Update Name */ function update_name($value, $post_id, $field){ // Previous value $_value = get_field($field['name'], $post_id); // Value Changed. Delete option if($_value !== $value){ acfe_delete_settings("{$this->settings}.{$_value}"); } return $value; } /* * ACF Save post */ function save_post($post_id){ // vars $args = array(); $name = $this->get_name($post_id); // Filters $args = apply_filters("acfe/taxonomy/save_args", $args, $name, $post_id); $args = apply_filters("acfe/taxonomy/save_args/name={$name}", $args, $name, $post_id); $args = apply_filters("acfe/taxonomy/save_args/id={$post_id}", $args, $name, $post_id); if($args === false) return; // Actions do_action("acfe/taxonomy/save", $name, $args, $post_id); do_action("acfe/taxonomy/save/name={$name}", $name, $args, $post_id); do_action("acfe/taxonomy/save/id={$post_id}", $name, $args, $post_id); } /* * Save Args */ function save_args($args, $name, $post_id){ $label = get_post_field('post_title', $post_id); $name = get_field('acfe_dt_name', $post_id); $description = get_field('description', $post_id); $hierarchical = get_field('hierarchical', $post_id); $post_types = get_field('post_types', $post_id); $public = get_field('public', $post_id); $publicly_queryable = get_field('publicly_queryable', $post_id); $update_count_callback = get_field('update_count_callback', $post_id); $sort = get_field('sort', $post_id); // Labels $labels = get_field('labels', $post_id); $labels_args = array(); foreach($labels as $k => $l){ if(empty($l)) continue; $labels_args[$k] = $l; } // Menu $show_ui = get_field('show_ui', $post_id); $show_in_menu = get_field('show_in_menu', $post_id); $show_in_nav_menus = get_field('show_in_nav_menus', $post_id); $show_tagcloud = get_field('show_tagcloud', $post_id); $meta_box_cb = get_field('meta_box_cb', $post_id); $meta_box_cb_custom = get_field('meta_box_cb_custom', $post_id); $show_in_quick_edit = get_field('show_in_quick_edit', $post_id); $show_admin_column = get_field('show_admin_column', $post_id); // Capability $capabilities = acf_decode_choices(get_field('capabilities', $post_id)); // Single $single_template = get_field('acfe_dt_single_template', $post_id); $single_posts_per_page = (int) get_field('acfe_dt_single_posts_per_page', $post_id); $single_orderby = get_field('acfe_dt_single_orderby', $post_id); $single_order = get_field('acfe_dt_single_order', $post_id); $rewrite = get_field('rewrite', $post_id); $rewrite_args_select = get_field('rewrite_args_select', $post_id); $rewrite_args = get_field('rewrite_args', $post_id); // Admin $admin_posts_per_page = (int) get_field('acfe_dt_admin_terms_per_page', $post_id); $admin_orderby = get_field('acfe_dt_admin_orderby', $post_id); $admin_order = get_field('acfe_dt_admin_order', $post_id); // REST $show_in_rest = get_field('show_in_rest', $post_id); $rest_base = get_field('rest_base', $post_id); $rest_controller_class = get_field('rest_controller_class', $post_id); // Register: Args $args = array( 'label' => $label, 'description' => $description, 'hierarchical' => $hierarchical, 'post_types' => $post_types, 'public' => $public, 'publicly_queryable' => $publicly_queryable, 'update_count_callback' => $update_count_callback, 'sort' => $sort, // Labels 'labels' => $labels_args, // Menu 'show_ui' => $show_ui, 'show_in_menu' => $show_in_menu, 'show_in_nav_menus' => $show_in_nav_menus, 'show_tagcloud' => $show_tagcloud, 'show_in_quick_edit' => $show_in_quick_edit, 'show_admin_column' => $show_admin_column, // Single 'rewrite' => $rewrite, // REST 'show_in_rest' => $show_in_rest, 'rest_base' => $rest_base, 'rest_controller_class' => $rest_controller_class, // ACFE: Single 'acfe_single_template' => $single_template, 'acfe_single_ppp' => $single_posts_per_page, 'acfe_single_orderby' => $single_orderby, 'acfe_single_order' => $single_order, // ACFE: Admin 'acfe_admin_ppp' => $admin_posts_per_page, 'acfe_admin_orderby' => $admin_orderby, 'acfe_admin_order' => $admin_order, ); // Rewrite: override if($rewrite && $rewrite_args_select){ $args['rewrite'] = array( 'slug' => $rewrite_args['acfe_dt_rewrite_slug'], 'with_front' => $rewrite_args['acfe_dt_rewrite_with_front'], 'hierarchical' => $rewrite_args['hierarchical'] ); } // Capabilities $args['capabilities'] = $capabilities; // Metabox CB $args['meta_box_cb'] = null; if($meta_box_cb === 'false') $args['meta_box_cb'] = false; elseif($meta_box_cb === 'custom') $args['meta_box_cb'] = $meta_box_cb_custom; return $args; } /* * Save */ function save($name, $args, $post_id){ // Get ACFE option $settings = acfe_get_settings($this->settings); // Create ACFE option $settings[$name] = $args; // Sort keys ASC ksort($settings); // Update ACFE option acfe_update_settings($this->settings, $settings); // Update post wp_update_post(array( 'ID' => $post_id, 'post_name' => $name, 'post_status' => 'publish', )); } /* * Trashed Post Type */ function trashed_post($post_id){ $name = $this->get_name($post_id); // Get ACFE option $settings = acfe_get_settings($this->settings); // Unset ACFE option acfe_unset($settings, $name); // Update ACFE option acfe_update_settings($this->settings, $settings); // Flush permalinks flush_rewrite_rules(); } /* * Import */ function import($name, $args){ // Vars $settings = acfe_get_settings($this->settings); $title = $args['label']; // Already exists if(isset($settings[$name])){ return new WP_Error('acfe_dt_import_already_exists', __("Taxonomy \"{$title}\" already exists. Import aborted.")); } // Import Post $post_id = false; $post = array( 'post_title' => $title, 'post_name' => $name, 'post_type' => $this->post_type, 'post_status' => 'publish' ); $post = apply_filters("acfe/taxonomy/import_post", $post, $name); $post = apply_filters("acfe/taxonomy/import_post/name={$name}", $post, $name); if($post !== false){ $post_id = wp_insert_post($post); } if(!$post_id || is_wp_error($post_id)){ return new WP_Error('acfe_dt_import_error', __("Something went wrong with the taxonomy \"{$title}\". Import aborted.")); } // Import Args $args = apply_filters("acfe/taxonomy/import_args", $args, $name, $post_id); $args = apply_filters("acfe/taxonomy/import_args/name={$name}", $args, $name, $post_id); $args = apply_filters("acfe/taxonomy/import_args/name={$post_id}", $args, $name, $post_id); if($args === false) return $post_id; // Import Fields acf_enable_filter('local'); do_action("acfe/taxonomy/import_fields", $name, $args, $post_id); do_action("acfe/taxonomy/import_fields/name={$name}", $name, $args, $post_id); do_action("acfe/taxonomy/import_fields/id={$post_id}", $name, $args, $post_id); acf_disable_filter('local'); // Save $this->save_post($post_id); return $post_id; } function import_fields($name, $args, $post_id){ // Register Args update_field('acfe_dt_name', $name, $post_id); update_field('description', $args['description'], $post_id); update_field('hierarchical', $args['hierarchical'], $post_id); update_field('post_types', $args['post_types'], $post_id); update_field('public', $args['public'], $post_id); update_field('publicly_queryable', $args['publicly_queryable'], $post_id); update_field('update_count_callback', $args['update_count_callback'], $post_id); update_field('sort', $args['sort'], $post_id); // Meta box callback if(!isset($args['meta_box_cb']) || $args['meta_box_cb'] === null){ update_field('meta_box_cb', 'null', $post_id); update_field('meta_box_cb_custom', '', $post_id); } elseif($args['meta_box_cb'] === false){ update_field('meta_box_cb', 'false', $post_id); update_field('meta_box_cb_custom', '', $post_id); } elseif(empty($args['meta_box_cb']) || is_string($args['meta_box_cb'])){ update_field('meta_box_cb', 'custom', $post_id); update_field('meta_box_cb_custom', $args['meta_box_cb'], $post_id); } // Labels if(!empty($args['labels'])){ foreach($args['labels'] as $label_key => $label_value){ update_field('labels_' . $label_key, $label_value, $post_id); } } // Menu update_field('show_ui', $args['show_ui'], $post_id); update_field('show_in_menu', $args['show_in_menu'], $post_id); update_field('show_in_nav_menus', $args['show_in_nav_menus'], $post_id); update_field('show_tagcloud', $args['show_tagcloud'], $post_id); update_field('show_in_quick_edit', $args['show_in_quick_edit'], $post_id); update_field('show_admin_column', $args['show_admin_column'], $post_id); // Capability if(isset($args['capabilities'])) update_field('capabilities', acf_encode_choices($args['capabilities'], false), $post_id); // Single update_field('acfe_dt_single_template', $args['acfe_single_template'], $post_id); update_field('acfe_dt_single_posts_per_page', $args['acfe_single_ppp'], $post_id); update_field('acfe_dt_single_orderby', $args['acfe_single_orderby'], $post_id); update_field('acfe_dt_single_order', $args['acfe_single_order'], $post_id); update_field('rewrite', $args['rewrite'], $post_id); // Admin update_field('acfe_dt_admin_terms_per_page', $args['acfe_admin_ppp'], $post_id); update_field('acfe_dt_admin_orderby', $args['acfe_admin_orderby'], $post_id); update_field('acfe_dt_admin_order', $args['acfe_admin_order'], $post_id); // REST update_field('show_in_rest', $args['show_in_rest'], $post_id); update_field('rest_base', $args['rest_base'], $post_id); update_field('rest_controller_class', $args['rest_controller_class'], $post_id); // Rewrite: override if($args['rewrite'] && is_array($args['rewrite'])){ update_field('rewrite', true, $post_id); update_field('rewrite_args_select', true, $post_id); update_field('rewrite_args_acfe_dt_rewrite_slug', $args['rewrite']['slug'], $post_id); update_field('rewrite_args_acfe_dt_rewrite_with_front', $args['rewrite']['with_front'], $post_id); update_field('rewrite_args_hierarchical', $args['rewrite']['hierarchical'], $post_id); } } /* * After Import */ function after_import($ids, $data){ flush_rewrite_rules(); } /* * Export: Choices */ function export_choices(){ $choices = array(); $settings = acfe_get_settings($this->settings); if(!$settings) return $choices; foreach($settings as $name => $args){ $choices[$name] = esc_html($args['label']); } return $choices; } /* * Export: Data */ function export_data($name){ // Settings $settings = acfe_get_settings($this->settings); // Doesn't exist if(!isset($settings[$name])) return false; $args = $settings[$name]; // Filters $args = apply_filters("acfe/taxonomy/export_args", $args, $name); $args = apply_filters("acfe/taxonomy/export_args/name={$name}", $args, $name); // Return return $args; } /* * Export: PHP */ function export_php($data){ // prevent default translation and fake __() within string acf_update_setting('l10n_var_export', true); $str_replace = array( " " => "\t", "'!!__(!!\'" => "__('", "!!\', !!\'" => "', '", "!!\')!!'" => "')", "array (" => "array(" ); $preg_replace = array( '/([\t\r\n]+?)array/' => 'array', '/[0-9]+ => array/' => 'array' ); // Get settings. $l10n = acf_get_setting('l10n'); $l10n_textdomain = acf_get_setting('l10n_textdomain'); foreach($data as $taxonomy => $args){ // Translate settings if textdomain is set. if($l10n && $l10n_textdomain){ $args['label'] = acf_translate($args['label']); $args['description'] = acf_translate($args['description']); if(!empty($args['labels'])){ foreach($args['labels'] as $key => &$label){ $args['labels'][$key] = acf_translate($label); } } } $post_types = array(); if(acf_maybe_get($args, 'post_types')){ $post_types = $args['post_types']; } $post_types = var_export($post_types, true); $post_types = str_replace( array_keys($str_replace), array_values($str_replace), $post_types ); $post_types = preg_replace( array_keys($preg_replace), array_values($preg_replace), $post_types ); // code $code = var_export($args, true); // change double spaces to tabs $code = str_replace( array_keys($str_replace), array_values($str_replace), $code ); // correctly formats "=> array(" $code = preg_replace( array_keys($preg_replace), array_values($preg_replace), $code ); // esc_textarea $code = esc_textarea( $code ); // echo echo "register_taxonomy('{$taxonomy}', {$post_types}, {$code});" . "\r\n" . "\r\n"; } } /* * Reset */ function reset(){ $args = apply_filters("acfe/taxonomy/reset_args", array( 'post_type' => $this->post_type, 'posts_per_page' => -1, 'fields' => 'ids', 'post_status' => array('publish', 'acf-disabled'), )); $posts = get_posts($args); if(empty($posts)) return false; foreach($posts as $post_id){ $this->save_post($post_id); } // Log acf_log('[ACF Extended] Reset: Taxonomies'); return true; } /* * Multilang Save */ function l10n_save($name, $args, $post_id){ // Bail early if(!acfe_is_wpml()) return; // Translate: Label if(isset($args['label'])){ do_action('wpml_register_single_string', $this->textdomain, 'Label', $args['label']); } // Translate: Description if(isset($args['description'])){ do_action('wpml_register_single_string', $this->textdomain, 'Description', $args['description']); } // Translate: Labels if(isset($args['labels'])){ foreach($args['labels'] as $label_name => &$label_text){ do_action('wpml_register_single_string', $this->textdomain, ucfirst($label_name), $label_text); } } } /* * Multilang Register */ function l10n_register($args, $name){ // Translate: Label if(isset($args['label'])){ $args['label'] = acfe_translate($args['label'], 'Label', $this->textdomain); } // Translate: Description if(isset($args['description'])){ $args['description'] = acfe_translate($args['description'], 'Description', $this->textdomain); } // Translate: Labels if(isset($args['labels'])){ foreach($args['labels'] as $label_name => &$label_text){ $label_text = acfe_translate($label_text, ucfirst($label_name), $this->textdomain); } } return $args; } /* * Add Local Field Group */ function add_local_field_group(){ acf_add_local_field_group(array( 'key' => 'group_acfe_dynamic_taxonomy', 'title' => __('Dynamic Taxonomy', 'acfe'), 'location' => array( array( array( 'param' => 'post_type', 'operator' => '==', 'value' => $this->post_type, ), ), ), 'menu_order' => 0, 'position' => 'normal', 'style' => 'default', 'label_placement' => 'left', 'instruction_placement' => 'label', 'hide_on_screen' => '', 'active' => 1, 'description' => '', 'fields' => array( array( 'key' => 'field_acfe_dt_tab_general', 'label' => 'General', 'name' => '', 'type' => 'tab', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', 'data-no-preference' => true, ), 'acfe_permissions' => '', 'placement' => 'top', 'endpoint' => 0, ), array( 'key' => 'field_acfe_dt_name', 'label' => 'Name', 'name' => 'acfe_dt_name', 'type' => 'acfe_slug', 'instructions' => 'The name of the taxonomy. Name should only contain lowercase letters and the underscore character, and not be more than 32 characters long (database structure restriction)', 'required' => 1, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => 32, ), array( 'key' => 'field_acfe_dt_description', 'label' => 'Description', 'name' => 'description', 'type' => 'text', 'instructions' => 'Include a description of the taxonomy', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_hierarchical', 'label' => 'Hierarchical', 'name' => 'hierarchical', 'type' => 'true_false', 'instructions' => 'Is this taxonomy hierarchical (have descendants) like categories or not hierarchical like tags', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'message' => '', 'default_value' => 0, 'ui' => 1, 'ui_on_text' => '', 'ui_off_text' => '', ), array( 'key' => 'field_acfe_dt_post_types', 'label' => 'Post types', 'name' => 'post_types', 'type' => 'acfe_post_types', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'field_type' => 'checkbox', 'return_format' => 'name', ), array( 'key' => 'field_acfe_dt_public', 'label' => 'Public', 'name' => 'public', 'type' => 'true_false', 'instructions' => 'Whether a taxonomy is intended for use publicly either via the admin interface or by front-end users', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'message' => '', 'default_value' => 1, 'ui' => 1, 'ui_on_text' => '', 'ui_off_text' => '', ), array( 'key' => 'field_acfe_dt_publicly_queryable', 'label' => 'Publicly queryable', 'name' => 'publicly_queryable', 'type' => 'true_false', 'instructions' => 'Whether the taxonomy is publicly queryable', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'message' => '', 'default_value' => 1, 'ui' => 1, 'ui_on_text' => '', 'ui_off_text' => '', ), array( 'key' => 'field_acfe_dt_update_count_callback', 'label' => 'Update count callback', 'name' => 'update_count_callback', 'type' => 'text', 'instructions' => 'A function name that will be called when the count of an associated $object_type, such as post, is updated', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_meta_box_cb', 'label' => 'Meta box callback', 'name' => 'meta_box_cb', 'type' => 'select', 'instructions' => 'Provide a callback function name for the meta box display.

Defaults to the categories meta box for hierarchical taxonomies and the tags meta box for non-hierarchical taxonomies. No meta box is shown if set to false.', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'choices' => array( 'null' => 'Null (default)', 'false' => 'False', 'custom' => 'Custom', ), 'default_value' => array( 0 => 'null', ), 'allow_null' => 0, 'multiple' => 0, 'ui' => 0, 'return_format' => 'value', 'ajax' => 0, 'placeholder' => '', ), array( 'key' => 'field_acfe_dt_meta_box_cb_custom', 'label' => 'Meta box callback', 'name' => 'meta_box_cb_custom', 'type' => 'text', 'instructions' => '', 'required' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', 'conditional_logic' => array( array( array( 'field' => 'field_acfe_dt_meta_box_cb', 'operator' => '==', 'value' => 'custom', ) ) ) ), array( 'key' => 'field_acfe_dt_sort', 'label' => 'Sort', 'name' => 'sort', 'type' => 'true_false', 'instructions' => 'Whether this taxonomy should remember the order in which terms are added to objects', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'message' => '', 'default_value' => 0, 'ui' => 1, 'ui_on_text' => '', 'ui_off_text' => '', ), array( 'key' => 'field_acfe_dt_tab_menu', 'label' => 'Menu', 'name' => '', 'type' => 'tab', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_permissions' => '', 'placement' => 'top', 'endpoint' => 0, ), array( 'key' => 'field_acfe_dt_show_ui', 'label' => 'Show UI', 'name' => 'show_ui', 'type' => 'true_false', 'instructions' => 'Whether to generate a default UI for managing this post type in the admin', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'message' => '', 'default_value' => 1, 'ui' => 1, 'ui_on_text' => '', 'ui_off_text' => '', ), array( 'key' => 'field_acfe_dt_show_in_menu', 'label' => 'Show in menu', 'name' => 'show_in_menu', 'type' => 'true_false', 'instructions' => 'Where to show the taxonomy in the admin menu. show_ui must be true', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'message' => '', 'default_value' => 1, 'ui' => 1, 'ui_on_text' => '', 'ui_off_text' => '', ), array( 'key' => 'field_acfe_dt_show_in_nav_menus', 'label' => 'Show in nav menus', 'name' => 'show_in_nav_menus', 'type' => 'true_false', 'instructions' => 'true makes this taxonomy available for selection in navigation menus', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'message' => '', 'default_value' => 1, 'ui' => 1, 'ui_on_text' => '', 'ui_off_text' => '', ), array( 'key' => 'field_acfe_dt_show_tagcloud', 'label' => 'Show tagcloud', 'name' => 'show_tagcloud', 'type' => 'true_false', 'instructions' => 'Whether to allow the Tag Cloud widget to use this taxonomy', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'message' => '', 'default_value' => 1, 'ui' => 1, 'ui_on_text' => '', 'ui_off_text' => '', ), array( 'key' => 'field_acfe_dt_show_in_quick_edit', 'label' => 'Show in quick edit', 'name' => 'show_in_quick_edit', 'type' => 'true_false', 'instructions' => 'Whether to show the taxonomy in the quick/bulk edit panel', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'message' => '', 'default_value' => 1, 'ui' => 1, 'ui_on_text' => '', 'ui_off_text' => '', ), array( 'key' => 'field_acfe_dt_show_admin_column', 'label' => 'Show admin column', 'name' => 'show_admin_column', 'type' => 'true_false', 'instructions' => 'Whether to allow automatic creation of taxonomy columns on associated post-types table', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'message' => '', 'default_value' => 1, 'ui' => 1, 'ui_on_text' => '', 'ui_off_text' => '', ), array( 'key' => 'field_acfe_dt_tab_single', 'label' => 'Single', 'name' => '', 'type' => 'tab', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_permissions' => '', 'placement' => 'top', 'endpoint' => 0, ), array( 'key' => 'field_acfe_dt_single_template', 'label' => 'Template', 'name' => 'acfe_dt_single_template', 'type' => 'text', 'instructions' => 'ACF Extended: Which template file to load for the term query. More informations on Template hierarchy', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => 'my-template.php', 'prepend' => trailingslashit(acfe_get_setting('theme_folder')), 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_single_posts_per_page', 'label' => 'Posts per page', 'name' => 'acfe_dt_single_posts_per_page', 'type' => 'number', 'instructions' => 'ACF Extended: Number of posts to display on the admin list screen', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => 10, 'placeholder' => '', 'prepend' => '', 'append' => '', 'min' => -1, 'max' => '', 'step' => '', ), array( 'key' => 'field_acfe_dt_single_orderby', 'label' => 'Order by', 'name' => 'acfe_dt_single_orderby', 'type' => 'text', 'instructions' => 'ACF Extended: Sort retrieved posts by parameter in the admin list screen. Defaults to \'date (post_date)\'.', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => array( '5c9479dec93c4' => array( 'acfe_update_function' => 'sanitize_title', ), ), 'acfe_permissions' => '', 'default_value' => 'date', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_single_order', 'label' => 'Order', 'name' => 'acfe_dt_single_order', 'type' => 'select', 'instructions' => 'ACF Extended: Designates the ascending or descending order of the \'orderby\' parameter in the admin list screen. Defaults to \'DESC\'.', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'choices' => array( 'ASC' => 'ASC', 'DESC' => 'DESC', ), 'default_value' => array( 0 => 'DESC', ), 'allow_null' => 0, 'multiple' => 0, 'ui' => 0, 'return_format' => 'value', 'ajax' => 0, 'placeholder' => '', ), array( 'key' => 'field_acfe_dt_rewrite', 'label' => 'Rewrite', 'name' => 'rewrite', 'type' => 'true_false', 'instructions' => 'Set to false to prevent automatic URL rewriting a.k.a. "pretty permalinks". Pass an argument array to override default URL settings for permalinks', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'message' => '', 'default_value' => 1, 'ui' => 1, 'ui_on_text' => '', 'ui_off_text' => '', ), array( 'key' => 'field_acfe_dt_rewrite_args_select', 'label' => 'Rewrite Arguments', 'name' => 'rewrite_args_select', 'type' => 'true_false', 'instructions' => 'Use additional rewrite arguments', 'required' => 0, 'conditional_logic' => array( array( array( 'field' => 'field_acfe_dt_rewrite', 'operator' => '==', 'value' => '1', ), ), ), 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'message' => '', 'default_value' => 0, 'ui' => 1, 'ui_on_text' => '', 'ui_off_text' => '', ), array( 'key' => 'field_acfe_dt_rewrite_args', 'label' => 'Rewrite Arguments', 'name' => 'rewrite_args', 'type' => 'group', 'instructions' => 'Additional arguments', 'required' => 0, 'conditional_logic' => array( array( array( 'field' => 'field_acfe_dt_rewrite', 'operator' => '==', 'value' => '1', ), array( 'field' => 'field_acfe_dt_rewrite_args_select', 'operator' => '==', 'value' => '1', ), ), ), 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_permissions' => '', 'layout' => 'row', 'sub_fields' => array( array( 'key' => 'field_acfe_dt_rewrite_slug', 'label' => 'Slug', 'name' => 'acfe_dt_rewrite_slug', 'type' => 'text', 'instructions' => 'Used as pretty permalink text (i.e. /tag/) - defaults to $taxonomy (taxonomy\'s name slug)', 'required' => 0, 'conditional_logic' => array( array( array( 'field' => 'field_acfe_dt_rewrite_args_select', 'operator' => '==', 'value' => '1', ), ), ), 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => 'Default', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_rewrite_with_front', 'label' => 'With front', 'name' => 'acfe_dt_rewrite_with_front', 'type' => 'true_false', 'instructions' => 'Allowing permalinks to be prepended with front base', 'required' => 0, 'conditional_logic' => array( array( array( 'field' => 'field_acfe_dt_rewrite_args_select', 'operator' => '==', 'value' => '1', ), ), ), 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'message' => '', 'default_value' => 1, 'ui' => 1, 'ui_on_text' => '', 'ui_off_text' => '', ), array( 'key' => 'field_acfe_dt_rewrite_hierarchical', 'label' => 'Hierarchical', 'name' => 'hierarchical', 'type' => 'true_false', 'instructions' => 'True or false allow hierarchical urls', 'required' => 0, 'conditional_logic' => array( array( array( 'field' => 'field_acfe_dt_rewrite_args_select', 'operator' => '==', 'value' => '1', ), ), ), 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'message' => '', 'default_value' => 0, 'ui' => 1, 'ui_on_text' => '', 'ui_off_text' => '', ), ), ), array( 'key' => 'field_acfe_dt_tab_admin', 'label' => 'Admin', 'name' => '', 'type' => 'tab', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_permissions' => '', 'placement' => 'top', 'endpoint' => 0, ), array( 'key' => 'field_acfe_dt_admin_terms_per_page', 'label' => 'Terms per page', 'name' => 'acfe_dt_admin_terms_per_page', 'type' => 'number', 'instructions' => 'ACF Extended: Number of terms to display on the admin list screen', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => 10, 'placeholder' => '', 'prepend' => '', 'append' => '', 'min' => -1, 'max' => '', 'step' => '', ), array( 'key' => 'field_acfe_dt_admin_orderby', 'label' => 'Order by', 'name' => 'acfe_dt_admin_orderby', 'type' => 'text', 'instructions' => 'ACF Extended: Sort retrieved terms by parameter in the admin list screen. Accepts term fields \'name\', \'slug\', \'term_group\', \'term_id\', \'id\', \'description\', \'parent\', \'count\' (for term taxonomy count), or \'none\' to omit the ORDER BY clause', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => array( '5c9479dec93c4' => array( 'acfe_update_function' => 'sanitize_title', ), ), 'acfe_permissions' => '', 'default_value' => 'name', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_admin_order', 'label' => 'Order', 'name' => 'acfe_dt_admin_order', 'type' => 'select', 'instructions' => 'ACF Extended: Designates the ascending or descending order of the \'orderby\' parameter in the admin list screen. Defaults to \'ASC\'.', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'choices' => array( 'ASC' => 'ASC', 'DESC' => 'DESC', ), 'default_value' => array( 0 => 'ASC', ), 'allow_null' => 0, 'multiple' => 0, 'ui' => 0, 'return_format' => 'value', 'ajax' => 0, 'placeholder' => '', ), array( 'key' => 'field_acfe_dt_tab_labels', 'label' => 'Labels', 'name' => '', 'type' => 'tab', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_permissions' => '', 'placement' => 'top', 'endpoint' => 0, ), array( 'key' => 'field_acfe_dt_labels', 'label' => 'Labels', 'name' => 'labels', 'type' => 'group', 'instructions' => 'An array of labels for this taxonomy. By default tag labels are used for non-hierarchical types and category labels for hierarchical ones.

Default: if empty, name is set to label value, and singular_name is set to name value.', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_permissions' => '', 'layout' => 'row', 'sub_fields' => array( array( 'key' => 'field_acfe_dt_singular_name', 'label' => 'Singular name', 'name' => 'singular_name', 'type' => 'text', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_menu_name', 'label' => 'Menu name', 'name' => 'menu_name', 'type' => 'text', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_all_items', 'label' => 'All items', 'name' => 'all_items', 'type' => 'text', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_edit_item', 'label' => 'Edit item', 'name' => 'edit_item', 'type' => 'text', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_view_item', 'label' => 'View item', 'name' => 'view_item', 'type' => 'text', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_update_item', 'label' => 'Update item', 'name' => 'update_item', 'type' => 'text', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_add_new_item', 'label' => 'Add new item', 'name' => 'add_new_item', 'type' => 'text', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_new_item_name', 'label' => 'New item name', 'name' => 'new_item_name', 'type' => 'text', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_parent_item', 'label' => 'Parent item', 'name' => 'parent_item', 'type' => 'text', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_parent_item_colon', 'label' => 'Parent item colon', 'name' => 'parent_item_colon', 'type' => 'text', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_search_items', 'label' => 'Search items', 'name' => 'search_items', 'type' => 'text', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_popular_items', 'label' => 'Popular items', 'name' => 'popular_items', 'type' => 'text', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_separate_items_with_commas', 'label' => 'Separate items with commas', 'name' => 'separate_items_with_commas', 'type' => 'text', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_add_or_remove_items', 'label' => 'Add or remove items', 'name' => 'add_or_remove_items', 'type' => 'text', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_choose_from_most_used', 'label' => 'Choose from most used', 'name' => 'choose_from_most_used', 'type' => 'text', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_not_found', 'label' => 'Not found', 'name' => 'not_found', 'type' => 'text', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_back_to_items', 'label' => 'Back to items', 'name' => 'back_to_items', 'type' => 'text', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), ), ), array( 'key' => 'field_acfe_dt_tab_capability', 'label' => 'Capability', 'name' => '', 'type' => 'tab', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_permissions' => '', 'placement' => 'top', 'endpoint' => 0, ), array( 'key' => 'field_acfe_dt_capabilities', 'label' => 'Capabilities', 'name' => 'capabilities', 'type' => 'textarea', 'instructions' => 'An array of the capabilities for this taxonomy:

manage_terms : edit_posts
edit_terms : edit_posts
delete_terms : edit_posts
assign_terms : edit_posts', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'maxlength' => '', 'rows' => '', 'new_lines' => '', ), array( 'key' => 'field_acfe_dt_tab_rest', 'label' => 'REST', 'name' => '', 'type' => 'tab', 'instructions' => '', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_permissions' => '', 'placement' => 'top', 'endpoint' => 0, ), array( 'key' => 'field_acfe_dt_show_in_rest', 'label' => 'Show in rest', 'name' => 'show_in_rest', 'type' => 'true_false', 'instructions' => 'Whether to include the taxonomy in the REST API. Set this to true for the taxonomy to be available in the block editor', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'message' => '', 'default_value' => 0, 'ui' => 1, 'ui_on_text' => '', 'ui_off_text' => '', ), array( 'key' => 'field_acfe_dt_rest_base', 'label' => 'Rest base', 'name' => 'rest_base', 'type' => 'text', 'instructions' => 'To change the base url of REST API route', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => '', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), array( 'key' => 'field_acfe_dt_rest_controller_class', 'label' => 'Rest controller class', 'name' => 'rest_controller_class', 'type' => 'text', 'instructions' => 'REST API Controller class name', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array( 'width' => '', 'class' => '', 'id' => '', ), 'acfe_validate' => '', 'acfe_update' => '', 'acfe_permissions' => '', 'default_value' => 'WP_REST_Terms_Controller', 'placeholder' => '', 'prepend' => '', 'append' => '', 'maxlength' => '', ), ), )); } } acf_new_instance('acfe_dynamic_taxonomies'); endif;