Плагин для добавления классов к изображениям, прикрепленным к записи

17 февр. 2011 г., 04:29:53
Просмотры: 1.12K
Голосов: 2

Я ищу плагин, который позволит пользователю добавлять теги к изображениям, прикрепленным к записи. Моя цель - добавить класс к тегу <img>, чтобы затем можно было создать разные jQuery слайдеры изображений внутри этой записи, каждый из которых использует изображения с разными тегами/классами.

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

Я понимаю, что классы можно добавить к уже прикрепленному изображению через экран Редактировать изображение > Дополнительные настройки, но не уверен, насколько это будет интуитивно понятно, и, конечно, я бы предпочел, чтобы класс/тег выбирался из списка, чтобы минимизировать ошибки.

2
Комментарии

Под "пользователем" вы подразумеваете пользователя WordPress, который может редактировать записи и т.д., или посетителя вашего сайта? В общем, речь идет о добавлении тегов из редактора записей или со страницы на фронтенде?

Jan Fabry Jan Fabry
17 февр. 2011 г. 14:06:41

Извините за неоднозначную формулировку. Я имею в виду кого-то, кто добавляет теги из редактора записей.

Travis Northcutt Travis Northcutt
17 февр. 2011 г. 14:47:36
Все ответы на вопрос 2
5

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() в вашей теме.

17 февр. 2011 г. 09:15:05
Комментарии

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

Travis Northcutt Travis Northcutt
17 февр. 2011 г. 13:13:49

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

wyrfel wyrfel
18 февр. 2011 г. 03:46:51

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

wyrfel wyrfel
18 февр. 2011 г. 03:49:11

Я попробовал сохранить это как плагин, как вы предложили, но безрезультатно. WP видит его, но выдает ошибку при попытке активации:

Parse error: syntax error, unexpected '{' on line 9

Это не единственная синтаксическая ошибка, и я не уверен, как исправить их все.

Travis Northcutt Travis Northcutt
7 мар. 2011 г. 15:45:18

@tnorthcut ох, извините, это глупая опечатка, которую я делаю слишком часто... у меня были () после определения класса. Убрал их.

wyrfel wyrfel
8 мар. 2011 г. 10:23:21
0

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

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

8 мар. 2011 г. 10:52:09