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';
Дополнительная проверка
Если код не работает:
- Убедись, что в
functions.php
он вставлен в конец файла (после всех?>
, если они есть). - Попробуй очистить кеш сайта или отключить кэширующие плагины.
- Проверь, не загружаешь ли изображение отдельно, а не в запись (код работает, только если изображение прикреплено к посту).
2. Через Плагины
Если не хочется редактировать код, можно использовать плагин:
- 📌 Auto Image Attributes From Filename With Bulk Updater – автоматически устанавливает
alt
,title
иdescription
по названию файла. - 📌 SEO Friendly Images – автоматически обновляет
alt
иtitle
изображений.
Отправить комментарий
Для отправки комментария вам необходимо авторизоваться.