У меня есть обратный вызов 'towns_meta_box', который является раскрывающимся списком.
public function cities_meta_box($post, $box)
{
$defaults = array('taxonomy' => 'category');
if (!isset($box['args']) || !is_array($box['args'])):
$args = array();
else:
$args = $box['args'];
endif;
extract(wp_parse_args($args, $defaults), EXTR_SKIP);
$tax = get_taxonomy($taxonomy);
echo '<div id="taxonomy-'.$taxonomy.'" class="acf-taxonomy-field categorydiv">';
$name = ($taxonomy == 'category') ? 'post_category' : 'tax_input[' . $taxonomy . ']';
echo "<input type='hidden' name='{$name}[]' value='0' />";
$term_obj = wp_get_object_terms($post->ID, $taxonomy);
echo '<ul id="'.$taxonomy.'checklist" data-wp-lists="list:'.$taxonomy.'"
class="categorychecklist form-no-clear"></ul>';
// var_dump($term_obj);
wp_dropdown_categories(array(
'taxonomy' => $taxonomy,
'hide_empty' => 0,
'name' => "{$name}[]",
'selected' => $term_obj[0]->slug,
'orderby' => 'name',
'hierarchical' => 0,
'show_option_none' => '—'
));
echo '</div>';
}
То, что происходит, каждый раз, когда я сохраняю сообщение, создает новый термин, названный как выбранный идентификатор термина. Пример скриншотов:
Название термина «Скопье» с идентификатором 20
Когда я сохраняю сообщение, создается новый термин после идентификатора последнего:
обратите внимание, что имя 20, которое является идентификатором термина таксономии «Скопье»