При разработке сайта на WordPress, особенно если это образовательный портал с курсами, часто возникает задача отображать краткое описание курса — excerpt. Зачастую пользователь забывает заполнить поле с кратким описанием, или его нужно формировать динамически из основного текста. В этой статье мы разберем, как создать автоматический excerpt для курсов в WordPress, который будет аккуратно и информативно отображаться на страницах архива, в виджетах и списках.
Почему автоматический excerpt важен для образовательных сайтов
Курс — это сложный вид записи с большим количеством информации. Не всегда удобно и правильно вручную создавать краткие описания для каждой записи. Автоматический excerpt позволяет:
- Обеспечить единообразие вывода краткого описания.
- Уменьшить нагрузку на контент-менеджера, ведь не нужно заполнять дополнительное поле.
- Избежать пустых блоков в листингах курсов.
- Оптимизировать SEO за счет контроля длины и содержания excerpt.
Давайте посмотрим, как это реализовать технически.
Настройка автоматического excerpt через functions.php
Самый простой способ — использовать хук get_the_excerpt, чтобы подменить вывод, если excerpt не задан вручную. В нашем случае мы будем проверять, что запись — это тип course (предположим, что у вас есть пользовательский тип записи для курсов).
function wpfreecourses_auto_excerpt_for_courses($excerpt) {
global $post;
if ($post->post_type === 'course' && empty($excerpt)) {
// Получаем первые 200 символов из контента без тегов
$content = wp_strip_all_tags($post->post_content);
$excerpt = mb_substr($content, 0, 200);
// Добавляем троеточие, если текст длиннее
if (mb_strlen($content) > 200) {
$excerpt .= '...';
}
}
return $excerpt;
}
add_filter('get_the_excerpt', 'wpfreecourses_auto_excerpt_for_courses');
Этот код автоматически создаст краткое описание из первых 200 символов текста курса, если поле excerpt пустое. Такой подход универсален и прост в поддержке.
Улучшение: обрезка по словам и удаление коротких предложений
Иногда обрезка по символам может резать текст посередине слова или предложения. Для более аккуратного excerpt можно использовать функцию, которая обрезает по словам. Вот пример реализации:
function wpfreecourses_trim_excerpt_words($text, $word_limit = 30) {
$words = explode(' ', $text);
if (count($words) > $word_limit) {
$words = array_slice($words, 0, $word_limit);
$text = implode(' ', $words) . '...';
}
return $text;
}
function wpfreecourses_auto_excerpt_for_courses_words($excerpt) {
global $post;
if ($post->post_type === 'course' && empty($excerpt)) {
$content = wp_strip_all_tags($post->post_content);
$excerpt = wpfreecourses_trim_excerpt_words($content, 30);
}
return $excerpt;
}
add_filter('get_the_excerpt', 'wpfreecourses_auto_excerpt_for_courses_words');
Такой подход позволит выводить более читабельный excerpt, который не разрывает смыслы и выглядит аккуратно.
Использование плагинов для автоматического excerpt
Если вы не хотите писать код, можно использовать готовые плагины, которые расширяют функционал excerpt:
- Advanced Excerpt – плагин, который позволяет гибко настраивать длину, тип обрезки, добавлять кнопки «читать далее».
- Auto Excerpt Everywhere – автоматически создает excerpt из контента, если поле пустое.
Для образовательных сайтов с большим количеством курсов эти плагины помогут быстро настроить нужный вид excerpt без программирования.
Пример интеграции с плагином WPGPT для генерации описаний курсов
Если вы используете плагин WPGPT, можно автоматизировать создание описаний курсов через AI. После создания курса плагин может генерировать краткое описание и сохранять его в excerpt.
Для этого можно использовать следующий пример кода, который запускается после сохранения записи курса:
function wpfreecourses_generate_excerpt_with_wpgpt($post_id) {
if (get_post_type($post_id) !== 'course') return;
$post = get_post($post_id);
$excerpt = get_post_field('post_excerpt', $post_id);
if (!empty($excerpt)) return; // уже есть excerpt
// Здесь вызываем API WPGPT для генерации текста
$content = $post->post_content;
$generated_excerpt = wpfreecourses_call_wpgpt_api($content);
if ($generated_excerpt) {
remove_action('save_post', 'wpfreecourses_generate_excerpt_with_wpgpt');
wp_update_post([
'ID' => $post_id,
'post_excerpt' => wp_trim_words($generated_excerpt, 30, '...')
]);
add_action('save_post', 'wpfreecourses_generate_excerpt_with_wpgpt');
}
}
add_action('save_post', 'wpfreecourses_generate_excerpt_with_wpgpt');
function wpfreecourses_call_wpgpt_api($text) {
// Пример запроса к API плагина WPGPT (псевдокод)
// Возвращать сгенерированный текст
return 'Сгенерированное краткое описание курса на основе AI.';
}
Такой подход существенно экономит время и повышает качество описаний.
Вывод и рекомендации по автоматическим excerpt для курсов
Автоматический excerpt — это простой и эффективный способ улучшить визуальное и функциональное восприятие ваших курсов на сайте. Используйте хук get_the_excerpt для кастомных решений, либо проверяйте возможности плагинов. Для профессиональных образовательных сайтов рекомендуем интегрировать AI-инструменты, такие как WPGPT, чтобы создавать привлекательные и информативные описания автоматически.
Обратите внимание на длину excerpt — оптимально 150-250 символов или 25-35 слов. Слишком короткий текст не несет смысла, а слишком длинный портит дизайн.
Если хотите, можете дополнительно использовать плагин Clearfy Pro для тонкой настройки вывода контента и оптимизации SEO.