Почему важно настраивать колонки в админке WordPress
Административная панель WordPress — это рабочее пространство, где ежедневно приходится взаимодействовать с большими объемами контента: постами, страницами, пользователями и другими типами записей. По умолчанию WordPress выводит стандартный набор колонок в списках записей, но зачастую этого недостаточно для удобной работы. Добавление и настройка колонок позволяет быстро видеть важные данные, фильтровать их и ускорять работу с сайтом.
Например, можно добавить колонку с кастомным полем, датой последнего обновления, количеством просмотров, статусом проверки и прочими параметрами. Это особенно полезно для редакторов, маркетологов и разработчиков, которые хотят видеть максимум информации сразу.
В этой статье мы рассмотрим, как с помощью кода и плагинов расширить функционал админки, добавив и настроив колонки для разных типов записей и пользователей.
Добавление и удаление колонок для записей WordPress
Для управления колонками в списке постов и кастомных типов записей используются фильтры manage_{$post_type}_posts_columns и экшены manage_{$post_type}_posts_custom_column. Рассмотрим пример для стандартных записей (post).
Добавление колонки с кастомным полем
Предположим, у записей есть кастомное поле wpquery_custom_info, которое нужно вывести в отдельной колонке.
add_filter('manage_post_posts_columns', 'wpquery_add_custom_column');
function wpquery_add_custom_column($columns) {
// Добавляем новую колонку после заголовка
$new_columns = array();
foreach ($columns as $key => $value) {
$new_columns[$key] = $value;
if ($key === 'title') {
$new_columns['wpquery_custom_info'] = 'Доп. Информация';
}
}
return $new_columns;
}
add_action('manage_post_posts_custom_column', 'wpquery_fill_custom_column', 10, 2);
function wpquery_fill_custom_column($column, $post_id) {
if ($column === 'wpquery_custom_info') {
$value = get_post_meta($post_id, 'wpquery_custom_info', true);
echo esc_html($value ? $value : '–');
}
}
Этот код добавит новую колонку с заголовком «Доп. Информация» и заполнит ее значениями из метаполя.
Удаление ненужных колонок
Иногда стандартные колонки занимают много места, и их лучше убрать. Для этого просто удалите нужный ключ из массива колонок.
add_filter('manage_post_posts_columns', 'wpquery_remove_columns');
function wpquery_remove_columns($columns) {
unset($columns['comments']); // Убираем колонку с комментариями
unset($columns['author']); // Убираем автора
return $columns;
}
Кастомизация колонок для пользователей WordPress
Аналогично можно настроить колонки в списке пользователей. Для этого используются фильтры manage_users_columns и экшены manage_users_custom_column.
Добавление колонки с ролью и дополнительной информацией
add_filter('manage_users_columns', 'wpquery_add_user_column');
function wpquery_add_user_column($columns) {
$columns['wpquery_user_role'] = 'Роль и статус';
return $columns;
}
add_action('manage_users_custom_column', 'wpquery_fill_user_column', 10, 3);
function wpquery_fill_user_column($value, $column_name, $user_id) {
if ($column_name === 'wpquery_user_role') {
$user = get_userdata($user_id);
$roles = implode(', ', $user->roles);
$status = get_user_meta($user_id, 'wpquery_status', true) ?: 'нет статуса';
return esc_html($roles . ' (' . $status . ')');
}
return $value;
}
Так вы получите колонку, где сразу видно роль пользователя и дополнительный статус из метаполя.
Полезные плагины для кастомизации колонок
Если хочется более гибких и визуальных настроек без кода, рекомендуем обратить внимание на следующие плагины с поддержкой кастомизации колонок:
- Codepress Admin Columns — один из самых популярных и удобных плагинов, позволяет добавлять колонки для постов, пользователей, терминов и др., поддержка сортировки и фильтрации.
- Clearfy Pro — комплексный оптимизатор WordPress с функцией управления админской панелью, включая колонки.
Оба плагина совместимы с последними версиями WordPress и помогают быстро настроить админку под свои задачи.
Сортировка и фильтрация по своим колонкам
Добавленные колонки можно сделать сортируемыми и фильтруемыми, что значительно улучшает удобство работы. Для сортировки добавьте фильтр manage_edit-{$post_type}_sortable_columns, а для обработки сортировки — хук pre_get_posts.
add_filter('manage_edit-post_sortable_columns', 'wpquery_make_column_sortable');
function wpquery_make_column_sortable($columns) {
$columns['wpquery_custom_info'] = 'wpquery_custom_info';
return $columns;
}
add_action('pre_get_posts', 'wpquery_sort_custom_column');
function wpquery_sort_custom_column($query) {
if (!is_admin() || !$query->is_main_query()) return;
if ($query->get('orderby') === 'wpquery_custom_info') {
$query->set('meta_key', 'wpquery_custom_info');
$query->set('orderby', 'meta_value');
}
}
Для фильтрации по значениям колонок можно добавить соответствующие элементы управления в админку, используя restrict_manage_posts. Это поможет быстро отфильтровать записи по нужным параметрам.
Особенности и рекомендации по производительности
Добавление большого количества кастомных колонок, особенно с данными из метаполей или сложных вычислений, может замедлить загрузку страниц админки. Чтобы избежать этого:
- Используйте кэширование результатов внутри функции вывода колонки.
- Не запрашивайте лишние данные в циклах, оптимизируйте запросы.
- Для сложных вычислений выносите логику в отдельные функции и вызывайте их при необходимости.
- Проверяйте влияние на производительность после добавления каждой колонки.
Хорошая практика — использовать плагины с оптимизированным кодом или реализовывать кастомные решения с учетом производительности.
Вывод
Настройка колонок в админке WordPress — это мощный способ сделать управление сайтом удобнее и эффективнее. С помощью приведенных примеров можно быстро добавить, удалить и настроить колонки для любых типов записей и пользователей.
Используйте фильтры и экшены WordPress, чтобы интегрировать кастомные поля, метаданные и другие данные в таблицы админки. При необходимости подключайте проверенные плагины — они помогут без лишних усилий получить нужный результат.
Больше полезных решений и плагинов вы найдете на wpshop.ru.