Для добавления миниатюры к записям, администратор сайта должен сделать 5 кликов, при этом перейти на страницу редактирования поста и опуститься ниже до метабокса «Изображение записи». В обычных ситуациях, это не составляет большого труда. Однако, если нужно установить большое количество миниатюр, например, если вы редактируете товары в интернет-магазине, это может отнимать довольно много времени. Сегодня я покажу, как можно добавлять миниатюры гораздо быстрее: в 3 клика и без перехода на страницу редактирования поста.

Для реализации этой задумки мы создадим дополнительный столбец в списке записей, с помощью которого мы и будем управлять миниатюрой. Если вы не хотите заморачиваться с кодом, просто установите плагин Easy Featured Images. Именно на его основе сегодняшний пост. Сразу оговорюсь, что для корректной работы в «Настройках медиафайлов», ширина и высота миниатюр не должны равняться 0. Если все в порядке, начнем.

Добавление нового столбца в списке записей

Воспользуемся хуком manage_(post_type)_posts_columns для добавления колонки.

Заполняем созданную колонку

Заполнение колонки осуществляется путем навешивания на функцию хука manage_[POST_TYPE]_posts_custom_column. В каждую строку мы добавим по три элемента: отображаемая картинка (миниатюра и её копия больших размеров), поле добавления картинки, и наконец кнопка для удаления картинки. Окончательный PHP будет выглядеть так:

Если вы внимательно присмотретесь к коду, может возникнуть вопрос: если мы будем работать с JavaScript, зачем оборачивать миниатюры в ссылку? Очень просто. Если что-то пойдет не так, эти ссылки перенаправляют пользователей на страницу редактирования поста. Такое может случиться, если с JS выключен (довольно большая редкость) или если другой плагин конфликтует с нашим JavaScript.

Оформление колонки

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

После добавления стилей, список записей будет иметь примерно такой вид

Параметр admin_enqueue_scripts позволяет нам выводить наши стили только на страницах административной части WordPress. Содержимое подключаемого файла:

Подключаем JavaScript

Для добавления картинок без перезагрузки, нам необходимо не только прописать путь js файлу, но и указать где располагается наш admin-ajax.php файл.

Содержимое скрипта:

На этом пожалуй все. Если вы все сделали верно, теперь вы сможете легко и быстро добавлять-удалять миниатюры записей.

Источник

Добавить комментарий