Я создал пользовательский тип поста, называемый «протоколы», и зарегистрировал несколько таксономий для этого нестандартного типа поста, чтобы предоставить клиенту фильтруемый / доступный для поиска список постов. По какой-то причине категории таксономии не отображаются в списке сообщений на экране администратора для пользовательского типа сообщений. скриншот здесь: http://demo.agexpressions.com/img/admin-screen.png
Я использовал строку ‘show_admin_column’ => true при регистрации всех таксономий, но столбцы все еще пустые! Надеюсь, кто-то с острыми глазами и большим знанием, чем я, может помочь мне диагностировать эту проблему! Код ниже:
// hook into the init action and call create_protocol_taxonomies when it fires
add_action( 'init', 'create_protocol_taxonomies', 0 );
// create three taxonomies - primary and disease categories, and status for the post type "protocols"
function create_protocol_taxonomies() {
// Add new taxonomy for Primary Category
$primarylabels = array(
'name' => _x( 'Primary', 'taxonomy general name' ),
'singular_name' => _x( 'Primary', 'taxonomy singular name' ),
'search_items' => __( 'Search Primary' ),
'all_items' => __( 'All Primaries' ),
'menu_name' => __( 'Primary' ),
);
$primaryargs = array(
'hierarchical' => true,
'labels' => $primarylabels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'primary' ),
);
register_taxonomy( 'primary', 'protocols', $primaryargs );
// Add new taxonomy for Disease Category
$diseaselabels = array(
'name' => _x( 'Disease', 'taxonomy general name' ),
'singular_name' => _x( 'Disease', 'taxonomy singular name' ),
'search_items' => __( 'Search Disease' ),
'all_items' => __( 'All Diseases' ),
'menu_name' => __( 'Disease' ),
);
$diseaseargs = array(
'hierarchical' => true,
'labels' => $diseaselabels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'disease' ),
);
register_taxonomy( 'disease', 'protocols', $diseaseargs );
// Add new taxonomy for Status
$statuslabels = array(
'name' => _x( 'Status', 'taxonomy general name' ),
'singular_name' => _x( 'Status', 'taxonomy singular name' ),
'search_items' => __( 'Search Status' ),
'all_items' => __( 'All Status' ),
'menu_name' => __( 'Status' ),
);
$statusargs = array(
'hierarchical' => true,
'labels' => $statuslabels,
'show_ui' => true,
'show_admin_column' => TRUE,
'query_var' => true,
'rewrite' => array( 'slug' => 'status' ),
);
register_taxonomy( 'status', 'protocols', $statusargs );
}add_action( 'init', 'protocols_init', 0 );
// Creates Protocols Custom Post Type
function protocols_init() {
$protocolsargs = array(
'label' => 'Protocols',
'public' => true,
'show_ui' => true,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => array('slug' => 'protocol'),
'query_var' => true,
'menu_icon' => 'dashicons-book-alt',
'menu_position' => 5,
'has_archive' => true,
'taxonomies' => array('primary', 'disease', 'status'),
'supports' => array(
'title',
'editor',
'revisions')
);
register_post_type( 'protocols', $protocolsargs );
}
Заметил еще кое-что еще. Если вы нажмете ссылку «Быстрое редактирование» в сообщении и назначите ему категории, они появятся в столбцах!
Тем не менее, если вы перейдете на полный экран редактирования, категории, которые вы только что присвоили, есть, но если вы вносите изменения или даже обновляете их без изменений, категории снова исчезают из столбцов администратора …
Так растерялся, кто-то, пожалуйста, взгляните на мой код и посмотрите, не делаю ли я что-то не так !! Я провел много часов в поисках на форумах поддержки WordPress и в Кодексе, и вкратце остановился. Никакой помощи от сообщения на форумах WordPress также, это было больше месяца.
Может ли это быть чем-то таким простым, как функция из строя? Пользовательский тип сообщения или таксономия инициируются слишком поздно?
Вам необходимо заполнить содержимое столбца. Увидеть http://codex.wordpress.org/Plugin_API/Action_Reference/manage_$ post_type_posts_custom_column
Собственно, я нашел решение. После поиска в базе данных через phpAdmin, я заметил, что есть дубликаты терминов таксономии. Более старые версии были от первой неудачной попытки создать пользовательский тип поста и таксономии.
Я удалил все пользовательские термины таксономии из базы данных, а затем вернулся в WordPress и создал их снова, по сути, предоставив мне новый список терминов. Теперь они правильно отображаются в списке сообщений администратора, а также на самом сайте.
Теперь, я все еще не уверен, ПОЧЕМУ двойные термины были проблемой, просто, что они были. Возможно, остаточные термины из моей первой неудачной попытки вступали в конфликт с новыми терминами, потому что название термина было одинаковым, но они были привязаны к разным таксономиям.