Ведение блога или сайта на WordPress часто требует уникальных визуальных материалов для каждой публикации. Ручное создание изображений отнимает много времени, особенно если контента много. В этой статье разберём, как автоматизировать процесс создания уникальных изображений для постов WordPress, используя плагины и кастомный код.
Почему важно иметь уникальные изображения для постов
Уникальные изображения делают сайт визуально привлекательнее и улучшают пользовательский опыт. Кроме того, поисковые системы положительно оценивают сайты с оригинальным медиа-контентом, что способствует лучшему SEO.
Использование стандартных или повторяющихся картинок снижает вовлечённость и может негативно сказаться на ранжировании. Автоматизация поможет всегда иметь уникальный визуальный ряд без дополнительных затрат времени.
Плагины для автоматического создания изображений
Существуют плагины, которые позволяют создавать автоматические картинки на основе шаблонов, данных поста или даже AI-сервисов. Рассмотрим несколько эффективных решений.
1. WP Robot + генерация изображений
Плагин WP Robot позволяет автоматически создавать контент и может интегрироваться с сервисами генерации изображений, добавляя визуальный контент к постам.
Для автоматической генерации используйте API таких сервисов, как OpenAI DALL·E, и интегрируйте с WP Robot для подстановки изображений в запись.
2. Auto Featured Image
Плагин автоматически назначает первое изображение из поста как миниатюру (featured image). Его можно расширить скриптами для генерации изображения при отсутствии медиа.
3. Dynamic Featured Image
Позволяет добавлять несколько миниатюр к посту и работать с ними программно.
Пример кастомного решения: создание изображения с текстом на основе данных поста
Если не хочется использовать сторонние API, можно динамически создавать изображения на сервере с помощью PHP и библиотеки GD или Imagick.
Ниже пример функции, которая создаст простое изображение с заголовком поста и сохранит его как миниатюру.
function wprobot_create_featured_image_from_title($post_id) {
$post = get_post($post_id);
if (!$post) return;
$title = $post->post_title;
$width = 1200;
$height = 630;
$image = imagecreatetruecolor($width, $height);
$bg_color = imagecolorallocate($image, 40, 40, 40);
$text_color = imagecolorallocate($image, 255, 255, 255);
imagefilledrectangle($image, 0, 0, $width, $height, $bg_color);
// Путь к шрифту TTF
$font_path = get_template_directory() . '/fonts/Roboto-Bold.ttf';
$font_size = 40;
// Добавляем текст по центру
$bbox = imagettfbbox($font_size, 0, $font_path, $title);
$x = ($width - ($bbox[2] - $bbox[0])) / 2;
$y = ($height - ($bbox[7] - $bbox[1])) / 2;
$y -= $bbox[7];
imagettftext($image, $font_size, 0, $x, $y, $text_color, $font_path, $title);
$upload_dir = wp_upload_dir();
$file_path = $upload_dir['path'] . '/featured_' . $post_id . '.png';
imagepng($image, $file_path);
imagedestroy($image);
// Добавляем изображение как миниатюру
$filename = basename($file_path);
$attachment = array(
'post_mime_type' => 'image/png',
'post_title' => $title,
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment($attachment, $file_path, $post_id);
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata($attach_id, $file_path);
wp_update_attachment_metadata($attach_id, $attach_data);
set_post_thumbnail($post_id, $attach_id);
}
add_action('save_post', 'wprobot_create_featured_image_from_title');Этот код срабатывает при сохранении поста, создаёт PNG с заголовком и устанавливает его как миниатюру. Для работы необходим шрифт Roboto-Bold.ttf в папке темы.
Как улучшить автоматическую генерацию изображений
Для более сложных и привлекательных картинок можно использовать:
- Генерацию фонов с градиентами и текстурами.
- Добавление логотипа сайта или водяных знаков.
- Использование SVG для векторной графики.
- Интеграцию с AI-сервисами для создания иллюстраций по ключевым словам.
Для интеграции AI-генераторов можно использовать плагины с поддержкой OpenAI или написать собственный модуль, который будет получать изображение по API и загружать его в медиабиблиотеку.
Автоматизация с помощью WP-Cron и плагинов
Если нужно создавать изображения массово для старых постов, можно написать скрипт, который запускается через WP-Cron, и обрабатывает посты без миниатюр.
Пример запуска функции для всех постов без миниатюр:
function wprobot_generate_images_for_old_posts() {
$args = array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => '_thumbnail_id',
'compare' => 'NOT EXISTS'
)
),
'posts_per_page' => 10
);
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
wprobot_create_featured_image_from_title(get_the_ID());
}
wp_reset_postdata();
}
}
if (!wp_next_scheduled('wprobot_generate_images_event')) {
wp_schedule_event(time(), 'hourly', 'wprobot_generate_images_event');
}
add_action('wprobot_generate_images_event', 'wprobot_generate_images_for_old_posts');Такой подход позволяет постепенно обновлять записи без нагрузки на сервер.
Выводы и рекомендации
Автоматическое создание уникальных изображений для постов в WordPress — мощный инструмент для повышения качества сайта и экономии времени. Можно использовать готовые плагины с интеграцией AI, либо самостоятельно реализовать генерацию через PHP и GD/Imagick.
Для расширенного функционала рекомендую рассмотреть WP Robot, который можно дополнить генерацией изображений через API.
Не забывайте про оптимизацию изображений и кеширование, чтобы не замедлять сайт.