ElasticPress + WordPress REST API:搜索高亮为什么「时有时无」,以及如何修
在 Headless WordPress 项目里,前端往往通过 REST API 做站内搜索: GET /wp-json/wp/v2/pages?search=sRNA&_fields=id,title,excerpt,content ElasticPress 已经接管了搜索,Elasticsearch 也返回了命中结果——但打开响应 JSON,你可能会看到一种很迷惑的现象: content.rendered 里有 <mark class=’ep-highlight’>sRNA</mark> excerpt.rendered 有时也有高亮 title.rendered 却是纯文本,哪怕标题里明明包含 sRNA 更诡异的是:你在 class-wp-rest-posts-controller.php 里加一行 add_filter(‘ep_is_integrated_request’, ‘__return_true’),content 和 excerpt 突然都有了高亮,title 还是没有。 这不是 ES 没干活,而是 ElasticPress 的默认策略 和 WordPress REST 的字段组装方式 叠在一起,制造了两层「高亮丢失」。 高亮本来是怎么工作的 …