Приветствую,
благодарю за проделанную работу - очень мощный функционал.
По форме публикации у всплывает такой неприятный момент:
При добавлении кастомной таксономии в форму, выбираю отображать выпадающим списоком, но, все равно отображаются чекбоксами. И после сохранения пропадает возможность выбора (выпадающий список, множественный выбор, чекбокс) - скрин ниже. Интересно, что основная таксономия ведет себя по другому - там все в порядке.
Спасибо!

Андрей CS сказал(а)
изначально это поле было в блоке неактивных полей?
можете сюда скинуть код, которым вы зарегистрировали таксономию? я проверю на тестовом сайте
Изначально этого поля не было в блоке неактивных, я его создал, указав MetaKey таксономии (taxonomy-ads_countries).
Регистрировал с помощью плагине CPT UI, ниже привожу код, который он сгенерировал.
Хочу добваить, что таксономия "Категории" был добавлена вместе с Post Type: Объявления, тоесть была создана еще до создания формы, и это поле было автоматически сгенерировано, и отображается как нужно - выпадающим списком. А таксономия "Страны" была добавлена позже, и с ней такая вот беда.
Спасибо за готовность помочь!
function cptui_register_my_cpts() {
/**
* Post Type: Объявления.
*/
$labels = [
"name" => __( "Объявления", "neve" ),
"singular_name" => __( "Объявление", "neve" ),
"menu_name" => __( "Объявления", "neve" ),
"all_items" => __( "Все объявления", "neve" ),
"add_new" => __( "Добавить новое", "neve" ),
"add_new_item" => __( "Добавить объявление", "neve" ),
"edit_item" => __( "Редактировать объявление", "neve" ),
"new_item" => __( "Новое объявление", "neve" ),
"view_item" => __( "Смотреть объявление", "neve" ),
"view_items" => __( "Смотреть объявления", "neve" ),
"search_items" => __( "Найти объявление", "neve" ),
"not_found" => __( "Объявлений не найдено", "neve" ),
"not_found_in_trash" => __( "Объявлений нет в корзине", "neve" ),
"parent" => __( "Родительское объявление:", "neve" ),
"featured_image" => __( "Featured image для Объявления", "neve" ),
"set_featured_image" => __( "Установить featured image для Объявленя", "neve" ),
"remove_featured_image" => __( "Remove featured image для Объявленя", "neve" ),
"use_featured_image" => __( "Использовать как featured image для Объявленя", "neve" ),
"archives" => __( "Архив объявлений", "neve" ),
"insert_into_item" => __( "Вставить в объявление", "neve" ),
"uploaded_to_this_item" => __( "Загрузить к объявлению", "neve" ),
"filter_items_list" => __( "Фидльтровать объявления", "neve" ),
"items_list_navigation" => __( "Навигация по объявлениям", "neve" ),
"items_list" => __( "Список объявлений", "neve" ),
"attributes" => __( "Атрибуты объявлений", "neve" ),
"name_admin_bar" => __( "Объявление", "neve" ),
"item_published" => __( "Объявление опубликовано", "neve" ),
"item_published_privately" => __( "Объявление опубликовано приватно", "neve" ),
"item_reverted_to_draft" => __( "Объявление откачено до черновика", "neve" ),
"item_scheduled" => __( "Объявление scheduled", "neve" ),
"item_updated" => __( "Объявление обновлено", "neve" ),
"parent_item_colon" => __( "Родительское объявление:", "neve" ),
];
$args = [
"label" => __( "Объявления", "neve" ),
"labels" => $labels,
"description" => "",
"public" => true,
"publicly_queryable" => true,
"show_ui" => true,
"show_in_rest" => true,
"rest_base" => "",
"rest_controller_class" => "WP_REST_Posts_Controller",
"has_archive" => "ads",
"show_in_menu" => true,
"show_in_nav_menus" => true,
"delete_with_user" => true,
"exclude_from_search" => false,
"capability_type" => "post",
"map_meta_cap" => true,
"hierarchical" => false,
"rewrite" => [ "slug" => "ads", "with_front" => true ],
"query_var" => true,
"supports" => [ "title", "editor", "thumbnail", "custom-fields", "page-attributes" ],
"taxonomies" => [ "ads_category" ],
];
register_post_type( "ads", $args );
}
add_action( 'init', 'cptui_register_my_cpts' );
function cptui_register_my_taxes() {
/**
* Taxonomy: Категории.
*/
$labels = [
"name" => __( "Категории", "neve" ),
"singular_name" => __( "Категория", "neve" ),
"menu_name" => __( "Категории", "neve" ),
"all_items" => __( "All Категории", "neve" ),
"edit_item" => __( "Edit Категория", "neve" ),
"view_item" => __( "View Категория", "neve" ),
"update_item" => __( "Update Категория name", "neve" ),
"add_new_item" => __( "Add new Категория", "neve" ),
"new_item_name" => __( "New Категория name", "neve" ),
"parent_item" => __( "Parent Категория", "neve" ),
"parent_item_colon" => __( "Parent Категория:", "neve" ),
"search_items" => __( "Search Категории", "neve" ),
"popular_items" => __( "Popular Категории", "neve" ),
"separate_items_with_commas" => __( "Separate Категории with commas", "neve" ),
"add_or_remove_items" => __( "Add or remove Категории", "neve" ),
"choose_from_most_used" => __( "Choose from the most used Категории", "neve" ),
"not_found" => __( "No Категории found", "neve" ),
"no_terms" => __( "No Категории", "neve" ),
"items_list_navigation" => __( "Категории list navigation", "neve" ),
"items_list" => __( "Категории list", "neve" ),
];
$args = [
"label" => __( "Категории", "neve" ),
"labels" => $labels,
"public" => true,
"publicly_queryable" => true,
"hierarchical" => true,
"show_ui" => true,
"show_in_menu" => true,
"show_in_nav_menus" => true,
"query_var" => true,
"rewrite" => [ 'slug' => 'ads_category', 'with_front' => true, ],
"show_admin_column" => false,
"show_in_rest" => true,
"rest_base" => "ads_category",
"rest_controller_class" => "WP_REST_Terms_Controller",
"show_in_quick_edit" => false,
];
register_taxonomy( "ads_category", [ "ads" ], $args );
/**
* Taxonomy: Страны.
*/
$labels = [
"name" => __( "Страны", "neve" ),
"singular_name" => __( "Страна", "neve" ),
"menu_name" => __( "Страны", "neve" ),
"all_items" => __( "All Страны", "neve" ),
"edit_item" => __( "Edit Страна", "neve" ),
"view_item" => __( "View Страна", "neve" ),
"update_item" => __( "Update Страна name", "neve" ),
"add_new_item" => __( "Add new Страна", "neve" ),
"new_item_name" => __( "New Страна name", "neve" ),
"parent_item" => __( "Parent Страна", "neve" ),
"parent_item_colon" => __( "Parent Страна:", "neve" ),
"search_items" => __( "Search Страны", "neve" ),
"popular_items" => __( "Popular Страны", "neve" ),
"separate_items_with_commas" => __( "Separate Страны with commas", "neve" ),
"add_or_remove_items" => __( "Add or remove Страны", "neve" ),
"choose_from_most_used" => __( "Choose from the most used Страны", "neve" ),
"not_found" => __( "No Страны found", "neve" ),
"no_terms" => __( "No Страны", "neve" ),
"items_list_navigation" => __( "Страны list navigation", "neve" ),
"items_list" => __( "Страны list", "neve" ),
];
$args = [
"label" => __( "Страны", "neve" ),
"labels" => $labels,
"public" => true,
"publicly_queryable" => true,
"hierarchical" => false,
"show_ui" => true,
"show_in_menu" => true,
"show_in_nav_menus" => true,
"query_var" => true,
"rewrite" => [ 'slug' => 'ads_countries', 'with_front' => true, ],
"show_admin_column" => false,
"show_in_rest" => true,
"rest_base" => "ads_countries",
"rest_controller_class" => "WP_REST_Terms_Controller",
"show_in_quick_edit" => false,
];
register_taxonomy( "ads_countries", [ "ads" ], $args );
}
add_action( 'init', 'cptui_register_my_taxes' );
roma.hitryy сказал(а)
я его создал, указав MetaKey таксономии (taxonomy-ads_countries)
нет, такого делать не следовало, поле для зарегистрированной таксономии должно создаваться автоматически
в массиве аргументов для регистрации типа записи у вас указана только одна таксономия
"taxonomies" => [ "ads_category" ],
надо было указать обе, ads_countries в том числе.
Внесите предложенное изменение в код, затем пробуйте перетащить созданное поле в блок неактивных полей, пересохраните поля, затем перетащите поле таксономии обратно.
Внес изменения (код ниже). Деактивировал/активировал - все равно отображается радиобатонами, или чекбоксами (если выбран множественный выбор).
Добавил новую таксономию (она в приведенном коде присутствует), поле добавилось в неактивных. Перенес - а там та же история, описанная выше, нет возможности отобразить выпадающим списком.
function cptui_register_my_cpts() {
/**
* Post Type: Объявления.
*/
$labels = [
"name" => __( "Объявления", "neve" ),
"singular_name" => __( "Объявление", "neve" ),
"menu_name" => __( "Объявления", "neve" ),
"all_items" => __( "Все объявления", "neve" ),
"add_new" => __( "Добавить новое", "neve" ),
"add_new_item" => __( "Добавить объявление", "neve" ),
"edit_item" => __( "Редактировать объявление", "neve" ),
"new_item" => __( "Новое объявление", "neve" ),
"view_item" => __( "Смотреть объявление", "neve" ),
"view_items" => __( "Смотреть объявления", "neve" ),
"search_items" => __( "Найти объявление", "neve" ),
"not_found" => __( "Объявлений не найдено", "neve" ),
"not_found_in_trash" => __( "Объявлений нет в корзине", "neve" ),
"parent" => __( "Родительское объявление:", "neve" ),
"featured_image" => __( "Featured image для Объявления", "neve" ),
"set_featured_image" => __( "Установить featured image для Объявленя", "neve" ),
"remove_featured_image" => __( "Remove featured image для Объявленя", "neve" ),
"use_featured_image" => __( "Использовать как featured image для Объявленя", "neve" ),
"archives" => __( "Архив объявлений", "neve" ),
"insert_into_item" => __( "Вставить в объявление", "neve" ),
"uploaded_to_this_item" => __( "Загрузить к объявлению", "neve" ),
"filter_items_list" => __( "Фидльтровать объявления", "neve" ),
"items_list_navigation" => __( "Навигация по объявлениям", "neve" ),
"items_list" => __( "Список объявлений", "neve" ),
"attributes" => __( "Атрибуты объявлений", "neve" ),
"name_admin_bar" => __( "Объявление", "neve" ),
"item_published" => __( "Объявление опубликовано", "neve" ),
"item_published_privately" => __( "Объявление опубликовано приватно", "neve" ),
"item_reverted_to_draft" => __( "Объявление откачено до черновика", "neve" ),
"item_scheduled" => __( "Объявление scheduled", "neve" ),
"item_updated" => __( "Объявление обновлено", "neve" ),
"parent_item_colon" => __( "Родительское объявление:", "neve" ),
];
$args = [
"label" => __( "Объявления", "neve" ),
"labels" => $labels,
"description" => "",
"public" => true,
"publicly_queryable" => true,
"show_ui" => true,
"show_in_rest" => true,
"rest_base" => "",
"rest_controller_class" => "WP_REST_Posts_Controller",
"has_archive" => "ads",
"show_in_menu" => true,
"show_in_nav_menus" => true,
"delete_with_user" => true,
"exclude_from_search" => false,
"capability_type" => "post",
"map_meta_cap" => true,
"hierarchical" => false,
"rewrite" => [ "slug" => "ads", "with_front" => true ],
"query_var" => true,
"supports" => [ "title", "editor", "thumbnail", "custom-fields", "page-attributes" ],
"taxonomies" => [ "ads_category", "ads_countries", "ads_countries_reg" ],
];
register_post_type( "ads", $args );
}
add_action( 'init', 'cptui_register_my_cpts' );
function cptui_register_my_taxes() {
/**
* Taxonomy: Категории.
*/
$labels = [
"name" => __( "Категории", "neve" ),
"singular_name" => __( "Категория", "neve" ),
"menu_name" => __( "Категории", "neve" ),
"all_items" => __( "All Категории", "neve" ),
"edit_item" => __( "Edit Категория", "neve" ),
"view_item" => __( "View Категория", "neve" ),
"update_item" => __( "Update Категория name", "neve" ),
"add_new_item" => __( "Add new Категория", "neve" ),
"new_item_name" => __( "New Категория name", "neve" ),
"parent_item" => __( "Parent Категория", "neve" ),
"parent_item_colon" => __( "Parent Категория:", "neve" ),
"search_items" => __( "Search Категории", "neve" ),
"popular_items" => __( "Popular Категории", "neve" ),
"separate_items_with_commas" => __( "Separate Категории with commas", "neve" ),
"add_or_remove_items" => __( "Add or remove Категории", "neve" ),
"choose_from_most_used" => __( "Choose from the most used Категории", "neve" ),
"not_found" => __( "No Категории found", "neve" ),
"no_terms" => __( "No Категории", "neve" ),
"items_list_navigation" => __( "Категории list navigation", "neve" ),
"items_list" => __( "Категории list", "neve" ),
];
$args = [
"label" => __( "Категории", "neve" ),
"labels" => $labels,
"public" => true,
"publicly_queryable" => true,
"hierarchical" => true,
"show_ui" => true,
"show_in_menu" => true,
"show_in_nav_menus" => true,
"query_var" => true,
"rewrite" => [ 'slug' => 'ads_category', 'with_front' => true, ],
"show_admin_column" => false,
"show_in_rest" => true,
"rest_base" => "ads_category",
"rest_controller_class" => "WP_REST_Terms_Controller",
"show_in_quick_edit" => false,
];
register_taxonomy( "ads_category", [ "ads" ], $args );
/**
* Taxonomy: Страны.
*/
$labels = [
"name" => __( "Страны", "neve" ),
"singular_name" => __( "Страна", "neve" ),
"menu_name" => __( "Страны", "neve" ),
"all_items" => __( "All Страны", "neve" ),
"edit_item" => __( "Edit Страна", "neve" ),
"view_item" => __( "View Страна", "neve" ),
"update_item" => __( "Update Страна name", "neve" ),
"add_new_item" => __( "Add new Страна", "neve" ),
"new_item_name" => __( "New Страна name", "neve" ),
"parent_item" => __( "Parent Страна", "neve" ),
"parent_item_colon" => __( "Parent Страна:", "neve" ),
"search_items" => __( "Search Страны", "neve" ),
"popular_items" => __( "Popular Страны", "neve" ),
"separate_items_with_commas" => __( "Separate Страны with commas", "neve" ),
"add_or_remove_items" => __( "Add or remove Страны", "neve" ),
"choose_from_most_used" => __( "Choose from the most used Страны", "neve" ),
"not_found" => __( "No Страны found", "neve" ),
"no_terms" => __( "No Страны", "neve" ),
"items_list_navigation" => __( "Страны list navigation", "neve" ),
"items_list" => __( "Страны list", "neve" ),
];
$args = [
"label" => __( "Страны", "neve" ),
"labels" => $labels,
"public" => true,
"publicly_queryable" => true,
"hierarchical" => false,
"show_ui" => true,
"show_in_menu" => true,
"show_in_nav_menus" => true,
"query_var" => true,
"rewrite" => [ 'slug' => 'ads_countries', 'with_front' => true, ],
"show_admin_column" => false,
"show_in_rest" => true,
"rest_base" => "ads_countries",
"rest_controller_class" => "WP_REST_Terms_Controller",
"show_in_quick_edit" => false,
];
register_taxonomy( "ads_countries", [ "ads" ], $args );
/**
* Taxonomy: Страна регистрации.
*/
$labels = [
"name" => __( "Страны", "neve" ),
"singular_name" => __( "Страна", "neve" ),
"menu_name" => __( "Страны", "neve" ),
"all_items" => __( "All Страны", "neve" ),
"edit_item" => __( "Edit Страна", "neve" ),
"view_item" => __( "View Страна", "neve" ),
"update_item" => __( "Update Страна name", "neve" ),
"add_new_item" => __( "Add new Страна", "neve" ),
"new_item_name" => __( "New Страна name", "neve" ),
"parent_item" => __( "Parent Страна", "neve" ),
"parent_item_colon" => __( "Parent Страна:", "neve" ),
"search_items" => __( "Search Страны", "neve" ),
"popular_items" => __( "Popular Страны", "neve" ),
"separate_items_with_commas" => __( "Separate Страны with commas", "neve" ),
"add_or_remove_items" => __( "Add or remove Страны", "neve" ),
"choose_from_most_used" => __( "Choose from the most used Страны", "neve" ),
"not_found" => __( "No Страны found", "neve" ),
"no_terms" => __( "No Страны", "neve" ),
"items_list_navigation" => __( "Страны list navigation", "neve" ),
"items_list" => __( "Страны list", "neve" ),
];
$args = [
"label" => __( "Страна регистрации", "neve" ),
"labels" => $labels,
"public" => true,
"publicly_queryable" => true,
"hierarchical" => false,
"show_ui" => true,
"show_in_menu" => true,
"show_in_nav_menus" => true,
"query_var" => true,
"rewrite" => [ 'slug' => 'ads_countries_reg', 'with_front' => true, ],
"show_admin_column" => false,
"show_in_rest" => true,
"rest_base" => "ads_countries_reg",
"rest_controller_class" => "WP_REST_Terms_Controller",
"show_in_quick_edit" => false,
];
register_taxonomy( "ads_countries_reg", [ "ads" ], $args );
}
add_action( 'init', 'cptui_register_my_taxes' );