Сейчас загружается

WORDPRESS — автоматически устанавливать заголовок (title) и атрибут alt изображения в соответствии с заголовком статьи

WORDPRESS автоматически устанавливать заголовок (title) и атрибут alt изображения в соответствии с заголовком статьи

В WordPress можно автоматически устанавливать заголовок (title) и атрибут alt изображения в соответствии с заголовком статьи. Это можно сделать несколькими способами:

1. Через functions.php (Автоматизация при загрузке)

Добавьте этот код в файл functions.php вашей темы. Он автоматически будет устанавливать title и alt изображения, основываясь на названии поста, при загрузке картинки:

function set_image_meta_on_upload($post_ID) {
    if (wp_attachment_is_image($post_ID)) {
        $parent_post = get_post($post_ID);
        $parent_id = $parent_post->post_parent;
        if ($parent_id) {
            $parent_title = get_the_title($parent_id);

            // Обновляем метаданные изображения
            update_post_meta($post_ID, '_wp_attachment_image_alt', $parent_title);
            wp_update_post([
                'ID'         => $post_ID,
                'post_title' => $parent_title
            ]);
        }
    }
}
add_action('add_attachment', 'set_image_meta_on_upload');

Что делает этот код:

  • При загрузке изображения, если оно прикреплено к посту, его title и alt обновляются на заголовок поста.

Этот вариант обновляет alt и title у изображения в момент загрузки и при прикреплении к записи.

function auto_set_image_meta($attachment_ID) {
    // Проверяем, является ли загруженный файл изображением
    if (wp_attachment_is_image($attachment_ID)) {
        // Получаем родительский пост (если изображение прикреплено к записи)
        $attachment = get_post($attachment_ID);
        $parent_id = $attachment->post_parent;

        if ($parent_id) {
            $parent_title = get_the_title($parent_id);

            // Устанавливаем alt-тег
            update_post_meta($attachment_ID, '_wp_attachment_image_alt', $parent_title);

            // Устанавливаем заголовок изображения
            wp_update_post([
                'ID'         => $attachment_ID,
                'post_title' => $parent_title,
                'post_name'  => sanitize_title($parent_title),
            ]);
        }
    }
}
add_action('add_attachment', 'auto_set_image_meta');

Что делает этот код?

  • Когда ты загружаешь изображение, WordPress проверяет, прикреплено ли оно к записи.
  • Если да, он берёт название статьи и устанавливает его как title и alt для изображения.
  • Работает только для новых загружаемых изображений.

Если изображения уже загружены

Важно! Перед выполнением сделай резервную копию базы данных.

Для существующих изображений можно массово обновить alt и title с помощью SQL-запроса (например, через phpMyAdmin):

UPDATE wp_postmeta pm
JOIN wp_posts p ON pm.post_id = p.ID
JOIN wp_posts parent ON p.post_parent = parent.ID
SET pm.meta_value = parent.post_title
WHERE pm.meta_key = '_wp_attachment_image_alt';

Дополнительная проверка

Если код не работает:

  1. Убедись, что в functions.php он вставлен в конец файла (после всех ?>, если они есть).
  2. Попробуй очистить кеш сайта или отключить кэширующие плагины.
  3. Проверь, не загружаешь ли изображение отдельно, а не в запись (код работает, только если изображение прикреплено к посту).

2. Через Плагины

Если не хочется редактировать код, можно использовать плагин:

  • 📌 Auto Image Attributes From Filename With Bulk Updater – автоматически устанавливает alt, title и description по названию файла.
  • 📌 SEO Friendly Images – автоматически обновляет alt и title изображений.