Настройка таблиц администратора WordPress: дополнительные модификации

Опубликовано: 2021-01-26

В нашей первой статье из нашей серии о настройке таблиц администратора WordPress мы рассмотрели, как применить некоторые базовые настройки к нашим экранам администратора типов записей, включая добавление пользовательского столбца и возможность сортировки.

Сегодня мы сделаем еще один шаг и рассмотрим некоторые дополнительные модификации, которые можно применить к административной таблице Post list. Давайте идти!

Улучшение таблицы сообщений администратора WordPress

Предоставление дополнительной информации на экране вашей административной таблицы для ваших внутренних пользователей определенно улучшит их рабочий процесс. В этом руководстве мы постараемся улучшить данные, отображаемые в нашей таблице администратора сообщений, путем добавления информации, изменения существующего контента, изменения порядка столбцов и даже удаления ненужных столбцов таблицы.

Показать избранные изображения

Было бы очень полезно добавить избранную миниатюру в список постов вашей административной таблицы. Это действительно ускорит возможность увидеть, есть ли в сообщении неправильное изображение (или, возможно, вообще нет изображения), без необходимости открывать каждый отдельный пост.

Для этого мы создадим столбец рекомендуемых изображений для страницы редактирования поста и заполним его миниатюрой изображения. Как показано в нашей предыдущей статье, мы будем использовать manage_posts_columns . Если вы еще не читали эту статью, сделайте это, так как она включает часть кода, необходимого для этого руководства.

Если вы прочитали статью и следовали ей, то у вас должен быть следующий код в файле functions.php вашей активной темы. Если нет, то добавьте!

 add_filter('manage_posts_columns','add_custom_columns'); function add_custom_columns( $columns ) { $columns['last_modified'] = 'Last modified'; return $columns; } add_action( 'manage_posts_custom_column','custom_columns_content', 10, 2 ); function custom_columns_content ( $column_id, $post_id ) { switch( $column_id ) { case 'last_modified': echo get_post_field('post_modified', $post_id); break; } }

Чтобы показать избранное изображение в нашей таблице администратора, нам нужно отредактировать этот код следующим образом:

 add_filter('manage_posts_columns','add_custom_columns'); function add_custom_columns( $columns ) { $columns['last_modified'] = 'Last modified'; $columns['my_post_thumbs'] = 'Thumbs'; return $columns; } add_action( 'manage_posts_custom_column','custom_columns_content', 10, 2 ); function custom_columns_content ( $column_id, $post_id ) { switch( $column_id ) { case 'last_modified': echo get_post_field('post_modified', $post_id); break; case 'my_post_thumbs': echo the_post_thumbnail( 'thumbnail' ); break; } }

Числа 10 и 2 в третьем и четвертом аргументах определяют приоритет, в котором будут обрабатываться функции, связанные с этим действием. Эти аргументы будут переданы нашей функции custom_columns_content .

По умолчанию приоритет равен 10. Цифра 2 показывает количество аргументов функции. Поэтому в нашем случае важно включить эти числа, поскольку у нас есть 2 аргумента, а именно $column_id и $post_id .

Теперь, когда этот код сохранен, давайте посмотрим, что у нас есть на экране сообщений администратора.

Избранные изображения в административной таблице WordPress

Как видите, теперь у нас есть столбец «Последнее изменение» и новый столбец «Большие пальцы».

Изменить метки столбцов

Предположим, что мы хотим по какой-то причине изменить метку столбца, например, переименовать столбец «Автор» в «Писатель». Для этого мы можем просто определить новую метку так же, как мы добавили наш пользовательский столбец. Еще раз, чтобы сделать наш код более отличительным, мы разделим фрагменты кода переименования, используя другую функцию.

 add_filter('manage_posts_columns','rename_columns'); function rename_columns( $columns ) { $columns['author'] = 'Writer'; return $columns; }

Конечно, вы можете изменить метку нескольких столбцов в одном и том же фрагменте кода, просто добавив $columns['COLUMN_ID'] = 'NEW_LABEL'; прямо перед return $columns;

Улучшить таблицу страниц администратора WordPress

Вы можете не знать об этом, но страницы WordPress представляют собой иерархический тип записей, что означает, что каждая страница может иметь родительскую страницу.

Было бы очень полезно сразу увидеть, какая страница является родительской для любой дочерней страницы. Давайте посмотрим, как это сделать.

Добавьте настраиваемый столбец, отображающий родительскую запись

Во-первых, создали несколько родительских и дочерних страниц с некоторыми связанными избранными изображениями.

Родительские и дочерние записи в административной таблице WordPress

Далее мы поместим некоторый код в наш файл functions.php . Мы собираемся следовать тому же процессу, что и с типом сообщений, в отношении добавления того, что мы назовем столбцом «Предок».

 add_filter('manage_pages_columns','add_ancestor_column'); function add_ancestor_column( $columns ) { $columns['ancestor'] = 'Ancestor'; return $columns; }

То же самое касается размещения столбца в желаемой позиции в таблице. Мы изменим порядок столбцов таблицы, чтобы столбец «Предок» располагался перед столбцом «Автор».

 add_filter('manage_pages_columns', 'change_ancestor_column_position'); function change_ancestor_column_position($columns) { $n_columns = array(); foreach($columns as $key => $value) { if ($key=='author'){ $n_columns['ancestor'] = 'ancestor'; } $n_columns[$key] = $value; } return $n_columns; }

На этом этапе на экране администратора Pages вы должны увидеть что-то вроде этого:

Последнее, что нам нужно сделать, это заполнить столбец «Предок» правильным содержимым. Поскольку на этот раз мы работаем с иерархическим типом записи, мы будем использовать другой хук для получения содержимого столбца. Попробуйте вставить этот фрагмент кода и проверьте результат.

 add_action( 'manage_pages_custom_column','ancestor_column_content', 10, 2 ); function ancestor_column_content ( $column_id, $post_id ) { switch( $column_id ) { case 'ancestor': $ancestors = get_ancestors($post_id, 'subject', 'post_type'); $post_ancestor = end($ancestors); if ($post_ancestor != 0) { echo '<a href="' . get_edit_post_link($post_ancestor) . '">' . get_the_title($post_ancestor) . '</a>'; } else { echo '-'; } break; } }

Теперь вы должны увидеть связанную родительскую страницу рядом с их дочерними страницами, перечисленными в столбце «Предок».

Это особенно полезно, если и когда порядок ваших страниц в таблице администрирования нарушается (например, из-за того, что они отсортированы по дате публикации и т. д.), и поэтому дочерние страницы больше не отображаются аккуратно под своими соответствующими родительскими страницами.

Изменение столбцов по умолчанию

Есть несколько вещей, которые можно сделать, чтобы улучшить столбцы таблицы администратора по умолчанию. Давайте посмотрим на некоторые из них.

Изменение порядка столбцов

В нашей предыдущей статье о настройке административных таблиц мы добавили новый столбец, в котором отображается дата последнего изменения сообщения. Но что, если мы хотим изменить его положение в порядке столбцов?

К счастью, это довольно просто и может быть реализовано с помощью хука manage_posts_columns .

Что должно быть определено, так это столбец, который нужно переместить, и столбец непосредственно перед тем местом, где мы хотим разместить наш столбец. Поэтому, если, например, мы хотим, чтобы изображение функции было первым столбцом таблицы, нам придется переместить его перед столбцом заголовка. Соответствующий код детали должен быть таким:

 add_filter('manage_posts_columns', 'change_column_order'); function change_column_order($columns) { $n_columns = array(); $move = 'author'; // what to move $before = 'title'; // move before this foreach($columns as $key => $value) { if ($key==$before){ $n_columns[$move] = $move; } $n_columns[$key] = $value; } return $n_columns; }

И вуаля!

добавить избранные изображения в ваши админ-таблицы WordPress

Удаление столбца

Иногда некоторые столбцы таблицы списка сообщений на самом деле не особенно полезны, и было бы лучше, если бы они были удалены, чтобы освободить место. Распространенным кандидатом на это является столбец комментариев.

К счастью, удалить столбец из нашей таблицы очень просто. Нам просто нужно добавить unset($columns['comments']); в функции хука manage_posts_columns . Хотя это можно добавить к нашему существующему коду, было бы лучше, если бы мы могли выделить его в отдельный фрагмент кода, поскольку он имеет другую цель и вводит новую функцию в хук.

 add_filter('manage_posts_columns' , 'remove_columns'); function remove_columns($columns) { unset($columns['comments']); return $columns; }

Вот и все. Обновите экран администратора, и вы должны увидеть, что столбец «Комментарии» исчез.

Примечание. Если вы не знаете идентификатор столбца, вы можете определить это с помощью консоли инспектора вашего браузера.

Плагин административных столбцов

Если вы не хотите кодировать изменения в своих таблицах администрирования WordPress, не бойтесь… поскольку это WordPress, существует плагин, который позволит вам вносить ряд обновлений, не касаясь ни строчки кода. Это называется столбцы администратора.

Примечание. Прежде чем приступить к установке/активации плагина, лучше отменить все настройки в таблице списка сообщений (если вы их сделали) и начать использовать плагин с таблицей сообщений администратора в исходном состоянии.

После того, как вы загрузили и установили плагин, перейдите в пункт меню «Настройки»> «Столбцы администратора». Отсюда вы можете выбрать таблицу со списком сообщений (или любой другой тип сообщения, для которого вы хотите иметь возможность редактировать его административную таблицу) из выпадающего списка. Затем вам будет показана текущая структура таблицы.

Теперь, используя интерфейс перетаскивания, вы можете легко изменить порядок столбцов. Вы также можете изменить метку типа и ширину, используя значок стрелки, чтобы просмотреть их конфигурацию.

И да, вы даже можете добавить свои собственные столбцы, используя кнопку «Добавить столбец» в правом нижнем углу!

На самом деле плагин здесь собирает все параметры, доступные из таблиц базы данных, которые относятся к типу сообщений, и предоставляет их в раскрывающемся меню «Тип». Поэтому, если, например, вы хотите добавить столбец «Последнее изменение», как мы делали это раньше, просто найдите и выберите его в списке «Тип», а затем присвойте ему метку и желаемую ширину.

После этого вы можете изменить параметры формата даты, которые появятся, если хотите.

Вывод

Наличие правильной информации в ваших таблицах администратора WordPress может действительно ускорить ваш рабочий процесс и помочь предотвратить ошибки на вашем веб-сайте. Например, гораздо менее вероятно, что вы сознательно опубликуете сообщение без избранного изображения, когда вы можете сразу увидеть все свои сообщения и связанные с ними избранные изображения в таблице администратора сообщений. Поиграйте и настройте свои таблицы администратора в соответствии с вашими рабочими процессами.