Почему не отображается фильтр по категориях для post_type?
Всем привет!
Создаю свою таксономию
function register_custom_taxonomy(){ register_taxonomy('topicality', array('masterclass'), array( 'hierarchical' => true, 'labels' => array( 'name' => _x( 'Актуальність', 'taxonomy general name' ), 'singular_name' => _x( 'Актуальність', 'taxonomy singular name' ), 'search_items' => __( 'Пошук' ), 'all_items' => __( 'Всі' ), 'parent_item' => __( 'Батькіська актуальність' ), 'parent_item_colon' => __( 'Батькіська актуальність:' ), 'edit_item' => __( 'Редагувати' ), 'update_item' => __( 'Оновити' ), 'add_new_item' => __( 'Додати нову' ), 'new_item_name' => __( 'Нова' ), 'menu_name' => __( 'Актуальність' ), ), 'public' => true, 'show_ui' => true, 'query_var' => true, )); } |
function register_custom_taxonomy(){ register_taxonomy('topicality', array('masterclass'), array( 'hierarchical' => true, 'labels' => array( 'name' => _x( 'Актуальність', 'taxonomy general name' ), 'singular_name' => _x( 'Актуальність', 'taxonomy singular name' ), 'search_items' => __( 'Пошук' ), 'all_items' => __( 'Всі' ), 'parent_item' => __( 'Батькіська актуальність' ), 'parent_item_colon' => __( 'Батькіська актуальність:' ), 'edit_item' => __( 'Редагувати' ), 'update_item' => __( 'Оновити' ), 'add_new_item' => __( 'Додати нову' ), 'new_item_name' => __( 'Нова' ), 'menu_name' => __( 'Актуальність' ), ), 'public' => true, 'show_ui' => true, 'query_var' => true, )); }
и свой тип записей
function register_post_types(){ register_post_type( 'masterclass', [ 'label' => null, 'labels' => [ 'name' => 'Майстер-класи', 'singular_name' => 'Майстер-клас', 'add_new' => 'Додати майстер-клас', 'add_new_item' => 'Додавання майстер-класу', 'edit_item' => 'Редагувати майстер-класу', 'new_item' => 'Новий майстер-клас', 'view_item' => 'Дивитися майстер-клас', 'search_items' => 'Шукати майстер-клас', 'not_found' => 'Не знайдено майстер-класу', 'not_found_in_trash' => 'Не знайдено в корзині', 'parent_item_colon' => '', 'menu_name' => 'Майстер-класи', ], 'description' => 'Майстер-клас', 'public' => true, 'publicly_queryable' => false, 'exclude_from_search' => true, 'show_ui' => true, 'show_in_nav_menus' => true, 'show_in_menu' => true, 'show_in_admin_bar' => true, 'show_in_rest' => true, 'rest_base' => null, 'menu_position' => 4, 'menu_icon' => 'dashicons-star-filled', 'hierarchical' => false, 'supports' => [ 'title'], 'taxonomies' => ['topicality'], 'has_archive' => false, 'rewrite' => true, 'query_var' => true, ]); } |
function register_post_types(){ register_post_type( 'masterclass', [ 'label' => null, 'labels' => [ 'name' => 'Майстер-класи', 'singular_name' => 'Майстер-клас', 'add_new' => 'Додати майстер-клас', 'add_new_item' => 'Додавання майстер-класу', 'edit_item' => 'Редагувати майстер-класу', 'new_item' => 'Новий майстер-клас', 'view_item' => 'Дивитися майстер-клас', 'search_items' => 'Шукати майстер-клас', 'not_found' => 'Не знайдено майстер-класу', 'not_found_in_trash' => 'Не знайдено в корзині', 'parent_item_colon' => '', 'menu_name' => 'Майстер-класи', ], 'description' => 'Майстер-клас', 'public' => true, 'publicly_queryable' => false, 'exclude_from_search' => true, 'show_ui' => true, 'show_in_nav_menus' => true, 'show_in_menu' => true, 'show_in_admin_bar' => true, 'show_in_rest' => true, 'rest_base' => null, 'menu_position' => 4, 'menu_icon' => 'dashicons-star-filled', 'hierarchical' => false, 'supports' => [ 'title'], 'taxonomies' => ['topicality'], 'has_archive' => false, 'rewrite' => true, 'query_var' => true, ]); }
если открыть запись - категория отображается, ее можно выбрать
но для фильтрации колонка с категориями недоступна
если для типа записей поставить 'taxonomies' => ['categoty'],
тогда все отображается
но мне нужно чтобы отображался фильтр и список именно моей таксономии специально для данного типа записей
все настройки переставил с false на true и наоборот
не помогает
в чем может быть проблема?
Дополнительно:
Ответы:
Попробуйте этот пример.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос


Для кастомного типа записи и своей таксономии недостаточно просто зарегистрировать
register_taxonomy(). Нужно убедиться, что таксономия привязана к нужномуpost_type, зарегистрирована наinit, имеет включённый UI, а если речь про фильтр в админке, то для него часто добавляют отдельный dropdown черезrestrict_manage_posts.Базовая регистрация:
add_action('init', function () { register_taxonomy('topicality', ['masterclass'], [ 'hierarchical' => true, 'public' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_rest' => true, 'query_var' => true, 'rewrite' => ['slug' => 'topicality'], 'labels' => [ 'name' => 'Актуальність', 'singular_name' => 'Актуальність', ], ]); });
Если нужен выпадающий фильтр в списке записей
masterclassв админке:add_action('restrict_manage_posts', function () { global $typenow; if ($typenow !== 'masterclass') { return; } wp_dropdown_categories([ 'show_option_all' => 'Всі актуальності', 'taxonomy' => 'topicality', 'name' => 'topicality', 'orderby' => 'name', 'selected' => $_GET['topicality'] ?? '', 'hierarchical' => true, 'hide_empty' => false, 'value_field' => 'slug', ]); });
После изменения rewrite-параметров один раз пересохраните постоянные ссылки в админке. Если фильтр нужен не в админке, а на фронтенде, тогда это уже отдельная форма с
tax_queryвWP_Query.