Как добавить свой атрибут с изображения в WordPress?

Ссылка скопирована
1 ответ

Нужно добавить свой тип атрибута в Wordpress, чтобы можно было выбрать фотографию, в моей теме уже имеется подобный, но нужно добавит ещё один, (например Image-2) чтобы его отдельно стилизовать.

Прочитал, что это делается через function.php, но не нашел сделать, чтобы можно было добавлять свои фотографии, подскажите пожалуйста, как это сделать?

Как добавить свой атрибут с изображения в Wordpress?

Как добавить свой атрибут с изображения в Wordpress?

Дополнительно:

А зачем атрибуту 2 разных изображения?

  • Refguser, Мне нужно отдельно стилизовать изображения из первые уже используется
  • Swift-U, "стилизовать" и "добавить ещё одно" - это понятия из параллельных вселенных. Непонятно зачем добавлять. В каких случае и почему ты хочешь показывать РАЗНЫЕ изображения?
  • Ответы:

    Advanced custom fields

    Нужно решить такую задачу?

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

    Заказать помощь
    Лучший ответ
    1
    Андрей PHP Ответ

    Если Вам нужно добавить второе изображение к записи, странице или объекту темы, это не “атрибут изображения” в стандартном смысле WordPress. Проще и правильнее добавить отдельное поле для картинки: через ACF, Carbon Fields или собственный meta box. Тогда первое изображение может оставаться стандартной миниатюрой, а второе — использоваться отдельно в шаблоне и стилизоваться как нужно.

    Через ACF это делается без кода: создаёте поле типа Image, например image_2, привязываете группу к нужному типу записи и в шаблоне выводите:

    $image = get_field('image_2');
     
    if ($image) {
        echo wp_get_attachment_image($image['ID'], 'large', false, [
            'class' => 'custom-image custom-image--second',
            'alt'   => esc_attr($image['alt']),
        ]);
    }

    $image = get_field('image_2'); if ($image) { echo wp_get_attachment_image($image['ID'], 'large', false, [ 'class' => 'custom-image custom-image--second', 'alt' => esc_attr($image['alt']), ]); }

    Если поле возвращает ID, код будет немного короче:

    $image_id = get_field('image_2');
    if ($image_id) {
        echo wp_get_attachment_image($image_id, 'large', false, ['class' => 'image-2']);
    }

    $image_id = get_field('image_2'); if ($image_id) { echo wp_get_attachment_image($image_id, 'large', false, ['class' => 'image-2']); }

    Стилизация делается CSS-классом, а не отдельным “типом атрибута”:

    .image-2 {
        border-radius: 12px;
        object-fit: cover;
    }

    .image-2 { border-radius: 12px; object-fit: cover; }

    Если нужно именно добавить новое поле в медиабиблиотеку для каждого изображения, это тоже возможно, но для Вашей задачи, судя по описанию, избыточно. Вам нужно второе изображение у материала, а не новый атрибут у самого attachment. Берите ACF Image — это самый быстрый и поддерживаемый путь.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно