Плагин для добавления классов к изображениям, прикрепленным к записи
Я ищу плагин, который позволит пользователю добавлять теги к изображениям, прикрепленным к записи. Моя цель - добавить класс к тегу <img>, чтобы затем можно было создать разные jQuery слайдеры изображений внутри этой записи, каждый из которых использует изображения с разными тегами/классами.
Дополнительные детали: Я нашел плагин под названием Media Tags, но не думаю, что он (прямо) решает мою задачу. Он добавляет таксономию к медиафайлам, и затем медиафайлы могут отображаться на сайте (через шорткод или тег шаблона) в соответствии с их 'медиатегом'. Моя конечная цель - сделать так, чтобы человек, обновляющий сайт (клиент без знаний WordPress), мог легко вставить несколько изображений в запись, 'пометить' их и чтобы эти изображения отображались в отдельных jQuery слайдерах внутри записи, в соответствии с назначенным тегом. Первоначально я думал, что лучший способ - сделать добавление класса к тегам <img> простым и интуитивным, но я открыт для других предложений.
Я понимаю, что классы можно добавить к уже прикрепленному изображению через экран Редактировать изображение > Дополнительные настройки
, но не уверен, насколько это будет интуитивно понятно, и, конечно, я бы предпочел, чтобы класс/тег выбирался из списка, чтобы минимизировать ошибки.

register_taxonomy_for_object_type('post_tag', 'attachment');
должно сработать. Думаю, вы даже можете добавить это в functions.php вашей темы.
Редактирование: ок, попробуйте это (сохраните как attachmenttags/attachmenttags.php в папке плагинов и убедитесь, что WordPress может прочитать файл, затем активируйте в менеджере плагинов):
/*
Название плагина: AttachmentTags
Описание: Включает теги для вложений
Автор: Wyrfel <andre@wyrfel.com>
Версия: 0.1
*/
if (!class_exists('AttachmentTags') {
class AttachmentTags {
function AttachmentTags() {
add_action('admin_init', (&$this, 'admin_init'));
add_filter('wp_get_attachment_image_attributes', (&$this, 'add_tag_classes'), 10, 2);
}
function admin_init() {
register_taxonomy_for_object_type('post_tag', 'attachment');
}
function add_tag_classes($attr, $attachment) {
$tags = wp_get_object_terms($attachment->ID, 'post_tag', 'names');
if (!empty($tags)) foreach ($tags as $tag) {
$attr['class'] .= ' '.$tag; //wp санирует позже, поэтому нам не нужно
}
return $attr;
}
}
$AttachmentTags = new AttachmentTags();
}
Кстати: Это также создает поле тегов записи в всплывающем окне добавления/редактирования изображения при редактировании самой записи/страницы.
Снова отредактировано, теперь также должно внедрять классы при использовании get_the_post_thumbnail() в вашей теме.

К чему это должно привести? Я попробовал этот код, но не вижу никаких изменений.

В функции, которая создает интерфейс редактора медиафайлов (который появляется при клике на вложение в медиабиблиотеке), есть код, проверяющий доступные таксономии для вложений и создающий поле для каждой доступной таксономии. Если вышеуказанное не работает, либо у меня там ошибка (например, tag вместо post_tag), либо WordPress все еще игнорирует это. Вызываете ли вы это из хука 'init' или 'admin_init'?

Только что проверил, это определенно работает, как указано выше, если вызывать из колбэка 'admin_init'. На самом деле, возможно, что если делать это из functions.php вашей темы, то этот файл вообще не вызывается в админке.

Я попробовал сохранить это как плагин, как вы предложили, но безрезультатно. WP видит его, но выдает ошибку при попытке активации:
Parse error: syntax error, unexpected '{' on line 9
Это не единственная синтаксическая ошибка, и я не уверен, как исправить их все.

Я рекомендую использовать плагин Attachments. Он добавляет небольшую мета-бокс внизу записи, где пользователь может легко добавлять изображения из медиатеки или загружать новые. Если вы используете add_image_size, то можете добавить поддержку любых размеров, необходимых для вашей темы. Также можно изменять порядок изображений перетаскиванием и добавлять метаданные, такие как подпись и альтернативный текст.
Это легко интегрируется в вашу тему, изображения всегда будут нужного размера, и вы можете добавить что-то вроде jQuery cycle для создания вращающихся изображений в каждой записи.
