Ещё один вариант подключения картинки в редактор таксономии

Предыдущий вариант встраивания картинки в редактор терминов меня не устраивает в части работы диалога и того, что в базу сохраняется URL, а не ID картинки (thumbnail).

Что не так с диалогом?

Использован диалог выбора URL картинки встроенного в WP WYSIWYG редактора, который не совсем удачен в данном случае, т.к. интерфейс может сбивать с толку пользователя. Для собственных нужд он вполне подходит, но встраивать его в работе «на клиента» не пойдет.

В WordPress есть и другой диалог, который позволяет выбрать картинку и при этом возвращает её идентификатор, а не URL. Этот диалог мы и будем использовать в новой версии демо-плагина, который писали в прошлой статье.

Структура плагина

Вывод поля картинки в редакторе

Вывод поля имеет декоративную цель, формирует нужный шаблон, с которым мы будем потом работать из javascript. Каких то реальных полей (input, file) здесь не выводится, т.к. ID выбранной картинки мы передадим по ajax.

В функции вызывается метод img_field(thumb_id). Это вспомогательная функция выводит миниатюру указанной картинки. Мы будем ей пользоваться ещё в одном месте, из-за этого пришлось выделить код в отдельную функцию.

Обвязка скриптом

Сейчас, когда уже определена структура HTML шаблона, можно приступить к java-скрипту.

Скрипт выполняет две задачи:

  • привязывает события к ссылкам «выберите картинку» и «удалите картинку»;
  • передаёт ID выбранного изображения по ajax нашей программе.

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

Итак, файл term_image.admin.js

Обработка передачи и сохранения данных

Скрипт отправляет данные по ajax, которые мы принимаем зацепившись хуком в нашей функциий _ajax_action().

Выполняются две задачи:

  • запомнить в сессии новое значение выбранной картинки (такая реализация не подойдет, если вы открыли и редактируете сразу два термина в рамках одной сессии!);
  • сформировать шаблон превью картинки для обновления клиентской части.

Когда программа дойдет до сохранения формы, мы используем значение ID картинки из сессии.

* * *

Есть и другие готовые решения. См. обзор плагинов, добавляющих картинку в таксономию.

Мало букафф? Читайте есчо !

Добавляем flash (swf) файлы в медиатеку сайта на Wordpress

Июнь 20, 2016 г.

Файлы Adobe Flash с расширением .swf нельзя загрузить в wordpress из коробки. Сделано так не без веских на то оснований. Но если вы осознаёте риски, то ...

Читать

Каркас модуля (плагина) для wordpress

Сентябрь 9, 2012 г.

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

Читать

WP Plugin Core Settings

Август 20, 2018 г.

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

Читать

Как добавить поддержку thumbnail в кастомный тип публикации

Август 16, 2020 г.

У базовых записей WP есть поддержка поля миниатюры, т.н. прикрепленное изображение. Рассмотрим как добавить поле миниатюры в редактор произвольного типа публикации (custom post type). А в конце статьи - пример вставки миниатюры в шаблон вашей публикации. ...

Читать
 

Комментарии к «Ещё один вариант подключения картинки в редактор таксономии»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: