Как сделать уникальные поля для медиа в WordPress

В стандартной медиабиблиотеке WordPress отсутствует возможность добавлять и управлять уникальными пользовательскими полями для медиафайлов. Это ограничивает гибкость при работе с изображениями, видео и другими файлами, если нужно хранить дополнительные метаданные, например, авторство, лицензии, географическую привязку и т.п. В этой статье мы разберём, как добавить уникальные поля для медиа в WordPress с помощью кода и популярных плагинов, а также рассмотрим практические примеры использования.

Почему нужны уникальные поля для медиа в WordPress

По умолчанию WordPress позволяет редактировать только базовые данные медиафайлов: название, подпись, описание и альтернативный текст. Однако в сложных проектах часто требуется хранить дополнительную информацию, например:

  • Автор и права на фото или видео;
  • Дата съёмки или создания;
  • Теги и категории, относящиеся к медиафайлу;
  • Специфичные для проекта атрибуты (например, место съёмки, используемое оборудование и т.д.).

Без возможности добавления кастомных полей приходится хранить эти данные отдельно, что неудобно и приводит к ошибкам.

Создание пользовательских полей для медиафайлов через код

Для добавления уникальных полей в медиафайлы можно использовать хук attachment_fields_to_edit для вывода полей в админке и attachment_fields_to_save для сохранения данных. Ниже приведён пример, как добавить поле «Автор фото».

function wp_course_attachment_extra_fields($form_fields, $post) {
    $form_fields['wp_course_author'] = array(
        'label' => 'Автор фото',
        'input' => 'text',
        'value' => get_post_meta($post->ID, '_wp_course_author', true),
        'helps' => 'Укажите имя автора фотографии'
    );
    return $form_fields;
}
add_filter('attachment_fields_to_edit', 'wp_course_attachment_extra_fields', 10, 2);

function wp_course_attachment_extra_fields_save($post, $attachment) {
    if (isset($attachment['wp_course_author'])) {
        update_post_meta($post['ID'], '_wp_course_author', sanitize_text_field($attachment['wp_course_author']));
    }
    return $post;
}
add_filter('attachment_fields_to_save', 'wp_course_attachment_extra_fields_save', 10, 2);

Этот код добавляет новое текстовое поле к каждому медиафайлу в редакторе и сохраняет введённое значение в метаполе. Вы можете добавить любое количество таких полей, меняя ключи и метки.

Вывод уникальных полей в шаблонах темы

Чтобы вывести значение пользовательских полей на сайте, используйте функцию get_post_meta. Например, для вывода автора фото:

$author = get_post_meta($attachment_id, '_wp_course_author', true);
if ($author) {
    echo '<p>Автор фото: ' . esc_html($author) . '</p>';
}

Где $attachment_id — ID медиафайла.

Использование плагинов для расширения возможностей медиафайлов

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

  • Advanced Custom Fields (ACF) — один из самых популярных плагинов для создания кастомных полей, поддерживает поля для медиа.
  • Media Library Assistant — расширяет возможности медиабиблиотеки, позволяет добавлять и фильтровать по пользовательским полям.
  • WP Media Folder — улучшает управление медиа, включая создание таксономий и дополнительных полей.

Например, с ACF можно создать группу полей, выбрать в настройках тип записи «Media» — и поля появятся при редактировании медиафайлов.

Пример настройки ACF для медиафайлов

1. Установите и активируйте ACF.

2. Создайте новую группу полей и добавьте необходимые поля (текст, выбор, дата и др.).

3. В разделе «Расположение» выберите «Тип записи» равно «Медиафайл».

4. Сохраните изменения, теперь при редактировании изображений в медиабиблиотеке появятся ваши поля.

Как автоматизировать заполнение уникальных полей для медиа

Для проектов с большим количеством медиафайлов полезно автоматизировать заполнение уникальных полей. Например, можно при загрузке автоматически заполнять дату съёмки из EXIF-данных или добавлять шаблонные значения.

Пример автоматического заполнения поля «Дата съёмки» из EXIF при загрузке:

function wp_course_fill_exif_date($post_ID) {
    $post = get_post($post_ID);
    if ($post->post_type !== 'attachment') return;

    $file = get_attached_file($post_ID);
    if (!$file) return;

    $exif = @exif_read_data($file);
    if ($exif !== false && !empty($exif['DateTimeOriginal'])) {
        update_post_meta($post_ID, '_wp_course_shoot_date', sanitize_text_field($exif['DateTimeOriginal']));
    }
}
add_action('add_attachment', 'wp_course_fill_exif_date');
<

Такой подход позволяет экономить время и исключить ошибки ручного ввода.

Советы по организации и поиску по уникальным полям в медиабиблиотеке

Добавление уникальных полей — это только половина задачи. Важно также обеспечить удобный поиск и фильтрацию медиафайлов по этим полям. Для этого можно использовать:

  • Плагины с расширенным поиском, например, Media Library Assistant;
  • Кастомные запросы WP_Query с параметром meta_query для фильтрации по метаданным;
  • Создание пользовательских таксономий для медиабиблиотеки, чтобы комбинировать с уникальными полями.

Например, для поиска медиафайлов с автором "Иван Иванов" используйте:

$query = new WP_Query(array(
    'post_type' => 'attachment',
    'meta_query' => array(
        array(
            'key' => '_wp_course_author',
            'value' => 'Иван Иванов',
            'compare' => '='
        )
    )
));

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        echo get_the_title() . '<br>';
    }
}
wp_reset_postdata();

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как реализовать отложенный запуск функций в WordPress: практическое руководство
23.12.2025
Как избежать проблемы с совместимостью плагинов в WordPress: практическое руководство
30.01.2026
Как создать свой шорткод в WordPress: практическое руководство с примерами
10.11.2025
Как настроить отложенный запуск функций в WordPress с помощью Cron
21.02.2026
Как автоматизировать создание резервных копий WordPress: лучшие плагины и примеры кода
03.12.2025
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее