Редкое событие - я хочу что-то сделать в WordPress, но понятия не имею, как это сделать, и поиск буквально ничего не дает.
Когда вы вставляете изображение в сообщение, вы получаете варианты выравнивания: «нет», «влево», «вправо», «центр». Это приводит к вставке изображения с помощью класса CSS, связанного с выравниванием, такого как «alignleft», «alignright» или «aligncenter».
Отлично.
Что, если моя тема была немного более сложной, и я хотел бы добавить сюда пару опций, которые, как и основные опции, просто добавили бы новый класс CSS к вставленным изображениям? Например, вариант «правого поля», который я мог бы использовать с каким-нибудь причудливым CSS, чтобы получить более сложные макеты?
Любые указатели на то, где я мог бы начать?
Ответы:
Я согласен с Давид-Бинда - отличный вопрос! Я неоднократно сталкивался с этой проблемой и нашел решение, которое работает довольно хорошо. Хотя мне нравится идея добавления шорткода для вставки изображения с классами, как это предлагает pavlos-bizimis, я не думаю, что это действительно решает проблему так же элегантно, как добавление параметров во всплывающее окно редактирования изображений (например, вам, вероятно, придется оберните изображение в свой шорткод, если вы не хотите вводить идентификатор изображения вручную). Кроме того, для некоторых из моих клиентов даже короткий код слишком сложен (в этом случае вы, конечно, можете связать его с кнопкой TinyMCE).
Во всяком случае,
бездальнейших церемоний - вот мои пять центов. Я использую это решение в плагине для слайд-шоу, который дает мне возможность включать / исключать изображение из слайд-шоу и устанавливать цвет фона для наложения, показывающего содержимое некоторых мета-полей изображения. По сути, он подключаетсяattachment_fields_to_edit
иattachment_fields_to_save
для того, чтобы добавить поля ввода и сохранить данные формы соответственно. Эти данные будут доступны в качестве стандартного мета-сообщения для сообщения вложения (т. Е. Изображения, которое вы редактируете). Это здорово, так как его легко получить с помощьюget_post_meta()
обычного. Также вы должны добавить фильтрwp_get_attachment_image_attributes
или,image_send_to_editor
который позволит вам автоматически добавлять соответствующий класс каждый раз при выводе изображения.Я немного изменил код для удобства чтения, поэтому некоторые части могут быть неполными / ошибочными.
ОБНОВЛЕНИЕ : я только что скопировал этот код, чтобы использовать его как шаблон в проекте, над которым я работаю. Как вы, вероятно, можете заметить, посмотрев на код, я предпочитаю хранить мета-ключи поста в определенных константах. Когда я делаю это, я всегда добавляю значение вперед,
_
чтобы оно не отображалось в редакторе мета-полей, но эта практика может вызвать некоторые проблемыattachment_fields_to_save
. Ключи в$form_fields
массиве не могут начинаться с_
, поэтому будьте осторожны, используя разные ключи для массива и мета-значений, или обрезайте любые подчеркивания при работе с полями вложений. ПосколькуSLIDESHOW_EXCLUDE_IMAGE_KEY
в моем примере это даже не определено, это, вероятно, не имеет большого значения при копировании кода, но я решил упомянуть об этом в любом случае. Мне потребовалось некоторое время, чтобы понять это (и во второй раз, причем).источник
Хороший вопрос. И у этого вопроса есть свое решение. Возможно, приведенный ниже код слишком длинный, но не может быть короче. Дело в том, что вы можете удалить хук wp_footer и wp_admin_footer для функции wp_print_media_templates и заменить ее собственной функцией wp_print_media_templates с настраиваемыми параметрами. Простое размещение приведенного ниже кода в вашем functions.php переопределит оригинальную функцию и позволит вам изменять классы после строки с HTML-комментарием <! - УСТАНОВИТЕ ВАШИ КЛАССЫ ЗДЕСЬ -> Классы вставляются в шорткод галереи следующим образом:
Значение, установленное как MyClass1, создает alignMyClass1.
Если вы хотите установить классы без префикса «align», вам придется изменить javascript, вставив шорткод в текстовую область содержимого публикации, и это может быть слишком сложно по сравнению с переименованием ваших классов в CSS. Enyoj!
источник
Возможно, вам следует создать шорткод для вставки изображения с атрибутами класса. Я видел это во многих коммерческих темах.
источник
Вы можете использовать уникальный идентификатор изображения для индивидуальной стилизации определенных изображений.
источник