Улучшение административного столбца для пользовательского типа сообщения с помощью категорий

Одной из мощных функций 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.