ТЕСТ 4
add_action(‘save_post’, ‘generate_image_with_title_and_set_thumbnail’); function generate_image_with_title_and_set_thumbnail($post_id) { // Проверяем, является ли действие автосохранением, иначе ничего не делаем if (defined(‘DOING_AUTOSAVE’) && DOING_AUTOSAVE) { return; } // Проверяем, есть ли уже у записи установленная миниатюра if (has_post_thumbnail($post_id)) { return; } // Получаем название записи $post_title = get_the_title($post_id); // Создаем изображение с указанными размерами $image_width = 400; $image_height = 400; $image = imagecreatetruecolor($image_width, $image_height); // Цвета $text_color = imagecolorallocate($image, 255, 255, 255); // Белый цвет текста $background_color = imagecolorallocate($image, 0, 0, 0); // Черный цвет фона // Заполняем фон imagefilledrectangle($image, 0, 0, $image_width, $image_height, $background_color); // Шрифт и размер $font_size = 20; $font = 4; // Шрифт по умолчанию в GD Library // Добавляем текст на изображение $text_x = 10; // Координата X текста $text_y = 30; // Координата Y текста imagestring($image, $font, $text_x, $text_y, $post_title, $text_color); // Создаем путь для сохранения изображения $upload_dir = wp_upload_dir(); $filename = $upload_dir[‘path’] . ‘/’ . ‘generated_image_’ . $post_id . ‘.jpg’; // Сохраняем изображение imagejpeg($image, $filename); // Очищаем память imagedestroy($image); // Добавляем информацию о файле в базу данных WordPress $filetype = wp_check_filetype(basename($filename), null); $attachment = array( ‘post_mime_type’ => $filetype[‘type’], ‘post_title’ => $post_title, ‘post_content’ => », ‘post_status’ => ‘inherit’ ); $attach_id = wp_insert_attachment($attachment, $filename, $post_id); // Обновляем метаданные медиафайла require_once(ABSPATH . ‘wp-admin/includes/image.php’); $attach_data = wp_generate_attachment_metadata($attach_id, $filename); wp_update_attachment_metadata($attach_id, $attach_data); // Устанавливаем созданное изображение в качестве миниатюры для записи set_post_thumbnail($post_id, $attach_id); }