Приветствую,
благодарю за проделанную работу - очень мощный функционал.
По форме публикации у всплывает такой неприятный момент:
При добавлении кастомной таксономии в форму, выбираю отображать выпадающим списоком, но, все равно отображаются чекбоксами. И после сохранения пропадает возможность выбора (выпадающий список, множественный выбор, чекбокс) - скрин ниже. Интересно, что основная таксономия ведет себя по другому - там все в порядке.
Спасибо!
Андрей 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' );