Добавить теги на пользовательский тип публикации
-
29-09-2020 - |
Вопрос
Я использую каркас вишни на сайте WP.Он поставляется с пользовательским типом поста, который можно использовать для добавления «членов команды» и создания страниц персонала и т. Д.
Мне нужно расширить это, чтобы я мог добавлять теги на каждый «член команды», который я могу по сути, пометить их как работу в отделе A / B / C / ETC.
Пользовательский тип поста зарегистрирован в файле Theme-init.php, используя этот код;
/* Our Team */
function my_post_type_team() {
register_post_type( 'team',
array(
'label' => theme_locals("our_team"),
'singular_label' => theme_locals("our_team"),
'_builtin' => false,
// 'exclude_from_search' => true, // Exclude from Search Results
'capability_type' => 'page',
'public' => true,
'show_ui' => true,
'show_in_nav_menus' => false,
'menu_position' => 5,
'menu_icon' => ( version_compare( $GLOBALS['wp_version'], '3.8', '>=' ) ) ? 'dashicons-businessman' : '',
'rewrite' => array(
'slug' => 'team-view',
'with_front' => FALSE,
),
'supports' => array(
'title',
'editor',
'thumbnail',
)
)
);
}
add_action('init', 'my_post_type_team');
.
Я хочу добавить теги к этому, чтобы при добавлении нового члена команды я также могу назначить их в отдел с помощью добавления заданного соответствующего тега.В настоящее время поле редактора тегов не отображается на странице «Добавить новую / редактировать».
Итак, я адаптировал вышеуказанный код, чтобы включить в систему регистра таксономию, как это;
/* Our Team */
function my_post_type_team() {
register_post_type( 'team',
array(
'label' => theme_locals("our_team"),
'singular_label' => theme_locals("our_team"),
'_builtin' => false,
// 'exclude_from_search' => true, // Exclude from Search Results
'capability_type' => 'page',
'public' => true,
'show_ui' => true,
'show_in_nav_menus' => false,
'menu_position' => 5,
'menu_icon' => ( version_compare( $GLOBALS['wp_version'], '3.8', '>=' ) ) ? 'dashicons-businessman' : '',
'rewrite' => array(
'slug' => 'team-view',
'with_front' => FALSE,
),
'supports' => array(
'title',
'editor',
'thumbnail',
)
)
);
register_taxonomy(
'team_tag',
'team',
array(
'hierarchical' => false,
'label' => theme_locals("tags"),
'singular_name' => theme_locals("tag"),
'rewrite' => true,
'query_var' => true
)
);
}
add_action('init', 'my_post_type_team');
.
Тем не менее, я все еще не получаю коробку тегов, показывающую на странице редактирования в admin.
Любая помощь с этим будет очень оценена.
Решение
Кажется, что проблема была частично в том, чтобы их была тема - init.php в детской теме, которая перезаписывала частей темы-init.php в теме родительской / вишни.
Я решил проблему, добавив следующий код в тему моей дочерней темы - init.php;
register_taxonomy('team_tag', 'team', array(
'hierarchical' => false,
'label' => theme_locals("tags"),
'singular_name' => theme_locals("tag"),
'rewrite' => true,
'query_var' => true
)
);
. Другие советы
попробуйте это
register_taxonomy(
'team_tag',
'team',
array(
'hierarchical' => false,
'label' => __( 'Tags', CURRENT_THEME ),
'singular_name' => __( 'Tag', CURRENT_THEME ),
'rewrite' => true,
'query_var' => true
)
);
. register_post_type( 'team',
array(
'label' => theme_locals("our_team"),
'singular_label' => theme_locals("our_team"),
'_builtin' => false,
// 'exclude_from_search' => true, // Exclude from Search Results
'capability_type' => 'page',
'public' => true,
'show_ui' => true,
'show_in_nav_menus' => false,
'menu_position' => 5,
'menu_icon' => ( version_compare( $GLOBALS['wp_version'], '3.8', '>=' ) ) ? 'dashicons-businessman' : '',
'rewrite' => array(
'slug' => 'team-view',
'with_front' => FALSE,
),
'supports' => array(
'title',
'editor',
'thumbnail',
),
'taxonomies' => array('team_tag')
)
);
.
Вы можете увидеть, что добавил параметр taxonomies
в функцию register_post_type
.
Хотя этот код должен работать, вы можете попробовать создать отношение позже, с этим:
add_action('init', 'add_tax_post_rel');
function add_tax_post_rel() {
register_taxonomy_for_object_type('team_tag', 'team', 11);
}
. Вы можете попробовать это
add_action( 'init', 'create_client_tax' );
function create_client_tax() {
register_taxonomy(
'client_tag', //your tags taxonomy
'client', // Your post type
array(
'hierarchical' => false,
'label' => __( 'Tags', CURRENT_THEME ),
'singular_name' => __( 'Tag', CURRENT_THEME ),
'rewrite' => true,
'query_var' => true
)
);
}
.
Может быть, это поможет вам