Возвращаем столбик «ID» в админку WordPress

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

Теперь же есть более удобный способ быстро узнать ID. Делается это следующим образом.

В файл functions.php вашего шаблона добавьте следующий код:

// колонка "ID" в админке
add_action('admin_init', 'admin_area_ID');
function admin_area_ID() {
	// для таксономий (рубрик, меток и т.д.)
	foreach (get_taxonomies() as $taxonomy) {
		add_action("manage_edit-${taxonomy}_columns",          'tax_add_col');
		add_filter("manage_edit-${taxonomy}_sortable_columns", 'tax_add_col');
		add_filter("manage_${taxonomy}_custom_column",         'tax_show_id', 10, 3);
	}
	add_action('admin_print_styles-edit-tags.php', 'tax_id_style');
	function tax_add_col($columns) {return $columns + array ('tax_id' => 'ID');}
	function tax_show_id($v, $name, $id) {return 'tax_id' === $name ? $id : $v;}
	function tax_id_style() {print '<style>#tax_id{width:4em}</style>';}
	// для постов и страниц
	add_filter('manage_posts_columns', 'posts_add_col', 5);
	add_action('manage_posts_custom_column', 'posts_show_id', 5, 2);
	add_filter('manage_pages_columns', 'posts_add_col', 5);
	add_action('manage_pages_custom_column', 'posts_show_id', 5, 2);
	add_action('admin_print_styles-edit.php', 'posts_id_style');
	function posts_add_col($defaults) {$defaults['wps_post_id'] = __('ID'); return $defaults;}
	function posts_show_id($column_name, $id) {if ($column_name === 'wps_post_id') echo $id;}
	function posts_id_style() {print '<style>#wps_post_id{width:4em}</style>';}
}

После этого заходим в админку в список страниц или записей, или рубрик или любой другой таксономии и видим справа искомый столбик «ID»:

Столбик ID в записях WordPress

При желании этот столбик можно там же отключить (а при надобности опять включить). Для этого справа вверху кликните на вкладку «Настройки экрана» и снимите галочку с «ID»:

Включение/отключение столбика ID

Комментарии (16)

  1. 13 марта 2014 г. в 14:05

    С кастомными типами постов и таксономий, я так понимаю, тоже работает?
    К сожалению не могу проверить сам сейчас.

    1. 13 марта 2014 г. в 14:14 / ответ на коммент RAD

      Конечно. Под «любой другой таксономией» это и имеется в виду.

      1. 13 марта 2014 г. в 14:17 / ответ на коммент Dimox

        Отлично, то что нужно. Спасибо. :)

  2. 13 марта 2014 г. в 14:11

    Спасибо, все работает! Очень полезная вещь, без всяких плагинов.

  3. Pavel
    13 марта 2014 г. в 14:42

    Спасибо ! Я обычно ID реанимировал с помощью плагина, что не всегда хорошо.

    1. 14 марта 2014 г. в 11:47 / ответ на коммент Pavel

      Чем этот код отличается от кода в плагине )))

  4. 14 марта 2014 г. в 11:48

    Хорошо бы обернуть все это в is_admin(). Зачем этот код выполнять на сайте?

    1. 16 марта 2014 г. в 12:11 / ответ на коммент mihdan

      Кстати, да. Спасибо за замечание. Добавил.

      1. Роман
        6 декабря 2017 г. в 00:09 / ответ на коммент Dimox

        А где добавил? Я этого не нашел.
        И еще. А как сделать выпадающий список с именами пользователей чтобы админ мог выбрав пользователя посмотреть список его сообщений? Типа как вверху есть ссылка -Мои. Но не только свои, но и другие в зависимости от выбора.

  5. Carmel
    14 января 2015 г. в 00:43

    СПАСИБО!!!
    Автору респект за код и плагина никакого не нужно!

  6. Venoby
    8 апреля 2015 г. в 01:10

    Спасибо, заюзал)

  7. 27 апреля 2015 г. в 18:20

    В WordPress 4.1.3. не работает. Выдаёт фатальную ошибку.

    1. 27 апреля 2015 г. в 19:10 / ответ на коммент Sergey

      У меня работает без проблем.

  8. aksak
    18 февраля 2016 г. в 12:08

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

  9. Денис
    28 апреля 2017 г. в 14:31

    Спасибо за код, все работает! Подскажите пожалуйста, как сделать что бы поиск в админке искал посты по id?

  10. 25 января 2021 г. в 10:48

    Спасибо большое за код! Всё идеально работает. Пожалуй, добавлю Ваш сайт в закладки.

Ваш комментарий

Жирный текст

Ссылка

Цитата

Внутристрочный код

CSS-код

HTML-код

JavaScript-код

PHP-код