Удаление и изменение метаданных медиафайлов в WordPress без плагинов

Работа с метаданными медиафайлов в WordPress — задача, с которой часто сталкиваются разработчики и администраторы сайтов. Метаданные (например, дата создания, автор, заголовок, описание) влияют на SEO, удобство поиска и организацию медиа-библиотеки. В этой статье разберём, как удалить или изменить метаданные медиафайлов без использования плагинов, используя стандартные функции WordPress и PHP. Это особенно полезно, если вы хотите избежать лишних плагинов и сделать кастомные доработки.

Что такое метаданные медиафайлов в WordPress и где они хранятся

В WordPress медиафайлы — это записи типа attachment в базе данных. Метаданные хранятся в двух основных местах:

  • В таблице wp_posts — базовая информация (заголовок, описание, имя файла).
  • В таблице wp_postmeta — дополнительные данные, включая технические параметры (размер, ориентация, EXIF и т. д.).

Некоторые метаданные автоматически генерируются при загрузке (например, размеры картинок), другие можно редактировать вручную.

Как получить и изменить метаданные медиафайла через код

Получение метаданных медиафайла

Для начала нужно получить ID медиафайла. Допустим, у нас есть ID — $attachment_id. Чтобы получить метаданные, используем функцию WordPress:

$wpbloger_attachment_meta = wp_get_attachment_metadata($attachment_id);

Эта функция возвращает массив с техническими параметрами, такими как размеры изображений, ориентация, размеры файла и прочее.

Для получения заголовка и описания используйте:

$wpbloger_title = get_the_title($attachment_id);
$wpbloger_description = get_post_field('post_content', $attachment_id);

Изменение заголовка, описания и других основных данных

Чтобы изменить заголовок и описание, используйте функцию wp_update_post():

$wpbloger_update = array(
    'ID'           => $attachment_id,
    'post_title'   => 'Новый заголовок файла',
    'post_content' => 'Новое описание медиафайла'
);
wp_update_post($wpbloger_update);

Эти изменения сразу отразятся в админке и на сайте.

Удаление или изменение метаданных в wp_postmeta

Чтобы работать с дополнительными метаданными, например, удалить поле или изменить значение, используйте функции update_post_meta(), delete_post_meta() и get_post_meta().

Пример удаления метаданных:

delete_post_meta($attachment_id, '_wp_attachment_image_alt'); // Удаляет alt текст

Изменение или добавление нового значения:

update_post_meta($attachment_id, '_wp_attachment_image_alt', 'Описание для alt');

Пример функции для массового удаления метаданных alt у изображений

Иногда нужно очистить alt-теги у всех изображений в библиотеке. Вот пример функции, которую можно добавить в файл functions.php темы или в отдельный плагин:

function wpbloger_clear_all_alt_texts() {
    $args = array(
        'post_type'      => 'attachment',
        'post_mime_type' => 'image',
        'posts_per_page' => -1,
        'fields'         => 'ids',
    );
    $attachments = get_posts($args);
    foreach ($attachments as $attachment_id) {
        delete_post_meta($attachment_id, '_wp_attachment_image_alt');
    }
}
// Запустить функцию один раз
// wpbloger_clear_all_alt_texts();

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

Как работать с EXIF метаданными изображений

EXIF — это технические данные, встроенные в фотофайлы (например, дата съёмки, модель камеры). WordPress при загрузке может сохранять часть EXIF в метаданных. Чтобы получить оригинальные EXIF данные, используйте PHP функцию exif_read_data():

function wpbloger_get_exif_data($file_path) {
    if (function_exists('exif_read_data')) {
        $exif = @exif_read_data($file_path);
        if ($exif !== false) {
            return $exif;
        }
    }
    return false;
}

Чтобы получить путь к файлу медиа, используйте:

$file_path = get_attached_file($attachment_id);

Пример использования:

$exif_data = wpbloger_get_exif_data($file_path);
if ($exif_data) {
    echo 'Дата съёмки: ' . ($exif_data['DateTime'] ?? 'не указана');
}

Если нужно удалить EXIF данные из файла, это сложнее — придется перезаписать файл без метаданных, например, через GD или Imagick, что выходит за рамки этой статьи.

Полезные плагины для работы с метаданными

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

  • Clearfy Pro — оптимизация сайта, включая управление метаданными.
  • WPRemark — улучшение работы с медиа и комментариями.

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

Советы по безопасности и производительности

При работе с метаданными через код важно помнить:

  • Всегда делайте резервную копию базы данных перед массовыми изменениями.
  • Тестируйте функции на локальном или тестовом сайте, чтобы избежать потери данных.
  • Избегайте лишних запросов в циклах — используйте get_posts с нужными параметрами.
  • Не храните чувствительные данные в метаданных без шифрования.

Заключение

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

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

⭐⭐⭐⭐⭐
Как создать собственный шорткод в WordPress: практическое руководство
09.11.2025
Как использовать хуки WordPress для автоматизации задач
05.12.2025
Как решить проблему остановки работы WP-Cron на высоконагруженных сайтах
03.05.2026
Как быстро удалить старые вариации продуктов в WooCommerce без плагинов
13.06.2026
Как отключить автоматическую отправку писем WooCommerce при сборках заказа
17.06.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше