Для вывода краткого описания с HTML кодом на сайте WordPress (взятого из полного описания записи) необходимо добавить в файл functions.php следующий хук:
Его можно доработать, добавив в обоих случаях дополнительные html теги.
function oceanwp_custom_excerpt($word_count = 55, $allowed_tags = '<p><br><b><strong><i><em><a><span><div>', $more = '[...]') {
global $post;
// Если есть рукописный анонс → берем его
if (!empty($post->post_excerpt)) {
return '<div class="custom-excerpt">' . wpautop($post->post_excerpt) . '</div>';
}
// Берем из контента
$content = get_the_content();
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
// Оставляем только разрешённые теги
$content = strip_tags($content, $allowed_tags);
// Обрезаем по словам
$words = preg_split('/\s+/', $content, $word_count + 1, PREG_SPLIT_NO_EMPTY);
if (count($words) > $word_count) {
array_pop($words);
$words[] = $more;
$output = implode(' ', $words);
} else {
$output = implode(' ', $words);
}
return '<div class="custom-excerpt">' . $output . '</div>';
}
// Пример использования в шаблоне:
// echo oceanwp_custom_excerpt(30, '<p><a><span><strong>', '...');
А также в файле списка записей закомментировать прежний код вывода и добавить свой
У меня файл: /public_html/wp-content/themes/oceanwp/partials/entry/content.php
<?php
if (function_exists('oceanwp_custom_excerpt')) {
echo oceanwp_custom_excerpt(50, '<p><br><strong><a><span><div>', '...');
}
?>