Как отобразить идентификаторы записей и страниц в панели администратора WordPress
Опубликовано: 2015-02-14Время от времени было бы удобно узнать идентификатор записи или страницы в WordPress, верно?
Будь то для шорткода, при настройке чего-либо в настройках темы или, может быть, просто для получения быстрой ссылки.
Как бы то ни было, WordPress не позволяет легко определить идентификатор сообщения. Один из способов получить его — посетить страницу редактирования сообщения и проверить URL-адрес. Это должно выглядеть примерно так:
https://yourwebsite.com/wp-admin/post.php?post=137171&action=edit
137171 в приведенном выше примере — это идентификатор поста — основной идентификатор в базе данных. Наверняка должен быть более простой способ понять это, верно? К счастью, есть.
- Отображение идентификаторов сообщений с помощью плагина
- Сделай сам: отображение идентификаторов постов с кодом
- Добавление пользовательских столбцов
- Поиск правильных крючков
- Размещение идентификатора спереди
- Вывод
Отображение идентификаторов сообщений с помощью плагина
Самое простое решение — использовать плагин. Дедушка — это Reveal IDs, бесплатный плагин, который скачали чуть более 425 000 раз.
Еще одна новая опция — WPsite Show ID.
Оба плагина делают примерно одно и то же: показывают идентификаторы сообщений, страниц, пользователей, категорий, настраиваемых таксономий, настраиваемых типов сообщений и так далее. Единственная причина, по которой я склоняюсь к идентификаторам WPsite Show ID, — это размер 8 КБ. Reveal Ids занимает около 311 КБ, что кажется немного чрезмерным для такого простого плагина.
Сделай сам: отображение идентификаторов постов с кодом
Если вам интересно, как самостоятельно отображать идентификаторы сообщений, давайте взглянем на код.
Приведенный ниже код должен находиться внутри плагина или в файле функций вашей темы. Если вы хотите создать плагин, ознакомьтесь с нашим руководством по разработке плагинов для простого шаблона.
Прежде чем мы начнем, также стоит сказать, что вы должны создать дочернюю тему. Ознакомьтесь с нашим руководством по дочерним темам, если вы еще не знакомы с тем, как их создавать.
Добавление пользовательских столбцов
WordPress предлагает отличные инструменты для изменения списков сообщений администратора, включая создание собственных столбцов и контента. Нам нужно будет использовать фильтр, чтобы добавить столбец и действие, чтобы добавить значения. Давайте проведем быстрый тест на таблице обычных сообщений:
Это все, что нам нужно. Фильтр позволяет нам добавить столбец, изменив массив столбцов. Ключ массива должен быть идентификатором столбца, а значение будет отображаться в виде текста заголовка.
Функция, подключенная к действию, принимает два параметра: отображается имя столбца и идентификатор сообщения. Это идеально — мы просто повторяем идентификатор, когда отображается наш пользовательский столбец.
Функция «показать» — это моя попытка каламбура, извините за это! Он предназначен в качестве префикса для всех наших функций, чтобы убедиться, что они не конфликтуют с другими плагинами.
Небольшое отступление: обратите внимание, как я использовал 'revealid_id' == $column
, что кажется немного чуждым. Это называется условием Йоды и является предпочтительным в WordPress. Причина в том, что если вы забудете определить переменную, вы не получите огромную зияющую ошибку PHP на своей странице.
Поиск правильных крючков
Две приведенные выше функции — это все, что нам нужно. Оставшаяся часть головоломки заключается в том, где их зацепить. Зацепки, которые мы использовали, предназначены только для обычных сообщений, и наши идентификаторы не будут отображаться для страниц или других элементов.
На самом деле эти хуки называются переменными хуками , потому что они принадлежат к стандартизированному набору. Общая форма: manage_[post_type_or_element]_columns
и manage_[post_type_or_element]_custom_column
.

Исходя из этого, посты, страницы, медиа и пользовательские типы постов должны быть простыми, так как это все типы постов. Чтобы идентификаторы отображались для всех этих элементов, вы можете использовать следующие хуки:
Небольшое предостережение: все, кроме постов и страниц, использует типы постов. Тип сообщения для сообщений технически «сообщение», тип сообщения для страниц — «страница». По какой-то причине хуки используют форму множественного числа. Это причуда WordPress, так как она действительно должна быть в единственном числе. Видите ли, даже ядро WordPress не идеально.
Я добавил туда пользовательский тип записи: project. Что, если вы хотите применить это ко всем пользовательским типам записей? В этом случае вы можете легко перебрать их все следующим образом:
Я рекомендую тот же подход при работе с таксономиями. Чтобы вывести идентификатор только для категорий, вы можете использовать manage_edit-link-categories_columns
и manage_link_categories_custom_column
но чтобы добавить его ко всем таксономиям, нам нужно использовать другой цикл:
И последнее, но не менее важное: у нас есть пользователи и комментарии. Они также довольно просты. Посмотри:
Размещение идентификатора спереди
Это небольшое изменение немного сложнее, чем кажется. Когда мы добавили столбец ID, мы добавили его в конец существующего массива, содержащего все остальные столбцы. Решение кажется достаточно простым: добавьте его на передний план. Мы могли бы сделать это, объединив массивы, но оказалось, что флажок — это первый столбец — на самом деле мы хотим, чтобы идентификатор был на втором месте.
Мы по-прежнему будем использовать слияние массивов, но нам нужно немного больше хитрости — нам нужно сначала разделить его. Первый массив будет содержать флажок (первый элемент исходного массива), второй массив будет содержать все остальное. Мы объединим первый массив с массивом, содержащим наш идентификатор, а затем со вторым массивом. Код должен сделать это намного яснее:
Вывод
Я думаю, что это отличный пример модульности WordPress. Идентификаторы когда-то показывались в админке (до WordPress 2.5), но оказалось, что они нужны не многим. Как только эта функция была удалена, появились плагины для тех, кто все еще хотел видеть идентификаторы сообщений.
Написание нашего собственного плагина дает представление о том, насколько модульным является WordPress и насколько легко модифицировать саму панель администратора. Тот же метод, описанный выше, можно использовать для добавления эскизов, фрагментов описания и другой информации в таблицу списка администратора.
Теги: