У меня есть веб-сайт WordPress с Algolia, и я хотел бы показать продукт short_description
(т.е. post_excpert
) в результатах поиска в формате HTML.
Да, я использую плагин для продуктов woocommerce.
Атрибуты, уже проиндексированные с помощью Algolia и возвращающиеся в ответе также от Algolia.
Пример содержимого:
<table class="product-tab"> <tbody> <tr> <td>ABCD Power</td> <td>20 kW </td> </tr> <tr> <td>Volatile</td> <td>Article 63A</td> </tr> <tr> <td>Working File</td> <td>750 cm</td> </tr> <tr> <td>Hard Weight</td> <td>720 kg</td> </tr> </tbody> </table>
В настоящее время отображается с тегами HTML, но я хочу HTML должен быть применен к атрибуту.
Несколько других заметок
Использование Instantsearch
Плагин Wordpress назван search-by-algolia-мгновенные релевантные результаты (я знаю, что он архивирован):)
Файл InstantSearch. php
var search = instantsearch({
appId: algolia.application_id,
apiKey: algolia.search_api_key,
indexName: algolia.indices.searchable_posts.name,
urlSync: {
mapping: {'q': 's'},
trackedParameters: ['query']
},
searchParameters: {
facetingAfterDistinct: true,
highlightPreTag: '__ais-highlight__',
highlightPostTag: '__/ais-highlight__'
}
});
search.addWidget(
instantsearch.widgets.hits({
container: '#algolia-hits',
hitsPerPage: 10,
escapeHTML: true,
templates: {
empty: 'No results were found for "<strong>{{query}}</strong>".',
item: wp.template('instantsearch-hit')
},
transformData: {
item: function (hit) {
function replace_highlights_recursive (item) {
if( item instanceof Object && item.hasOwnProperty('value')) {
item.value = _.escape(item.value);
item.value = item.value.replace(/__ais-highlight__/g, '<em>').replace(/__\/ais-highlight__/g, '</em>');
} else {
for (var key in item) {
item[key] = replace_highlights_recursive(item[key]);
}
}
return item;
}
hit._highlightResult = replace_highlights_recursive(hit._highlightResult);
hit._snippetResult = replace_highlights_recursive(hit._snippetResult);
return hit;
}
}
})
);
Шаблон
<script type="text/html" id="tmpl-instantsearch-hit">
<article itemtype="http://schema.org/Article">
<# if ( data.images.thumbnail ) { #>
<div class="ais-hits--thumbnail">
<a href="{{ data.permalink }}" title="{{ data.post_title }}">
<img src="{{ data.images.thumbnail.url }}" alt="{{ data.post_title }}" title="{{ data.post_title }}" itemprop="image" />
</a>
</div>
<# } #>
<div class="ais-hits--content">
<h2 itemprop="name headline"><a href="{{ data.permalink }}" title="{{ data.post_title }}" itemprop="url">{{{ data._highlightResult.post_title.value }}}</a></h2>
<div class="excerpt">
<p>
<# if ( data._snippetResult['content'] ) { #>
<span class="suggestion-post-content">{{{ data._snippetResult['content'].value }}}</span>
<# } #>
</p>
<?php /*<p> <# if ( data.post_excerpt ) { #>
<span class="post-short-description">{{ data.post_excerpt }} </span>
<# } #></p> */ ?>
</div>
</div>
<div class="ais-clearfix"></div>
</article>
</script>