В шаблоне результатов поиска –
search.php, в стандартном цикле перебора постов используется функция
the_excerpt() для вывода отрывков.
В search.php для вывода результатов поиска использую стандартный Цикл WordPress:
<?php if( have_posts() ){ while( have_posts() ){ the_post(); ?>
<div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
<?php the_excerpt(); ?>
</div>
<?php } /* конец while */ ?>
<div class="navigation">
<div class="next-posts"><?php next_posts_link(); ?></div>
<div class="prev-posts"><?php previous_posts_link(); ?></div>
</div>
<?php
} // конец if
else
echo "<h2>Записей нет.</h2>";
Вопрос в том, почему функция выводит отрывок не с поля «Отрывок», который указан при создании поста, а создает его самостоятельно из первых 55 слов контента.
Ведь подобным образом функция должна вести себя только тогда, когда отрывка нет, но он ведь есть.
А на других страницах, например, кастомных архивных, где идет перебор постов через цикл на основе
WP_Query(), функция
the_excerpt() работает так, как и ожидается и берет отрывок именно с поля «Отрывок», а не с контента формирует.