Одной из мощных функций WordPress является возможность создавать собственные типы записей. Однако по умолчанию в столбце администратора для произвольного типа публикации не отображаются назначенные категории. В этой статье мы рассмотрим несколько способов добавления столбца категории в представление администратора произвольного типа публикации, а также приведем примеры кода для каждого метода.
Метод 1. Использование фильтра «manage_{$post_type}_postscolumns».
Первый метод предполагает использование фильтра «manage_{$post_type}_postscolumns».
Первый метод предполагает использование фильтра «manage_{$post_type}_posts_columns» для добавления нового столбца для категорий.. Вот пример фрагмента кода:
// Add category column to admin view
function custom_post_type_category_column($columns) {
$columns['categories'] = 'Categories';
return $columns;
}
add_filter('manage_custom_post_type_posts_columns', 'custom_post_type_category_column');
// Populate category column with data
function custom_post_type_category_content($column, $post_id) {
if ($column === 'categories') {
$categories = get_the_category($post_id);
$category_names = array();
foreach ($categories as $category) {
$category_names[] = $category->name;
}
echo implode(', ', $category_names);
}
}
add_action('manage_custom_post_type_posts_custom_column', 'custom_post_type_category_content', 10, 2);
Метод 2. Использование фильтров «manage_{$post_type}_postscolumns» и «manage{$post_type}_posts_custom_column» (альтернативный подход).
Другой подход заключается в использовании обоих фильтров вместе в единственная функция. Вот пример:
// Add category column to admin view and populate it with data
function custom_post_type_category_column($columns) {
$columns['categories'] = 'Categories';
return $columns;
}
add_filter('manage_custom_post_type_posts_columns', 'custom_post_type_category_column');
add_action('manage_custom_post_type_posts_custom_column', function ($column, $post_id) {
if ($column === 'categories') {
$categories = get_the_category($post_id);
$category_names = array();
foreach ($categories as $category) {
$category_names[] = $category->name;
}
echo implode(', ', $category_names);
}
}, 10, 2);
Метод 3: использование пользовательской функции для изменения столбца
В этом методе мы изменим выходные данные столбца с помощью пользовательской функции. Вот пример:
// Add category column to admin view
function custom_post_type_category_column($columns) {
$columns['categories'] = 'Categories';
return $columns;
}
add_filter('manage_custom_post_type_posts_columns', 'custom_post_type_category_column');
// Modify the column output
function custom_post_type_category_content($column_name, $post_ID) {
if ($column_name == 'categories') {
$categories = get_the_category($post_ID);
if ($categories) {
$output = '';
foreach ($categories as $category) {
$output .= '<a href="' . esc_url(get_edit_term_link($category->term_id, $category->taxonomy, 'custom_post_type')) . '">' . $category->name . '</a>, ';
}
echo trim($output, ', ');
}
}
}
add_action('manage_custom_post_type_posts_custom_column', 'custom_post_type_category_content', 10, 2);
В этой статье мы рассмотрели различные способы добавления столбца категории в представление администратора произвольного типа публикации. Реализовав эти примеры кода, вы сможете повысить удобство использования и эффективность управления пользовательскими типами записей в WordPress. Не забудьте выбрать метод, который лучше всего соответствует вашим потребностям, и интегрировать его в свою тему или собственный плагин.
Применяя эти методы, вы можете оптимизировать столбец администратора для своих пользовательских типов сообщений и улучшить общий опыт управления контентом WordPress.