Algolia - WordPress - 如何在JS变量中获取实际查询以在命中模板中进一步使用它?

时间:2017-09-13 13:37:25

标签: wordpress algolia

我想根据搜索查询显示一些有趣的内容,用户不仅要在搜索框中键入内容,而且还要使用即时搜索过滤器进行过滤。我有基于分层events_location分类法的过滤器。根据用户选择的内容,我将获得JS变量中的信息,然后我可以进一步使用hits div中的其他操作,特别是在每个命中卡上。

所以在搜索更新时我的网址如下: /what-to-see/?q=&idx=sdbeta_posts_events&p=0&hFR%5Btaxonomies_hierarchical.events_calendar.lvl0%5D%5B0%5D=JUL%204&hFR%5Btaxonomies_hierarchical.events_category.lvl0%5D%5B0% 5D =所有&安培; HFR%5Btaxonomies_hierarchical.events_locations.lvl0%5D%5B0%5D =围场%20Stage

我可以获取URL并从中提取数据,但我确信有更优雅的方式来处理查询。

2 个答案:

答案 0 :(得分:1)

在InstantSearch.js中,状态由另一个名为algoliasearch-helper的库管理。通过此库,您可以读取和写入搜索参数。

访问帮助程序最干净的是构建一个自定义窗口小部件,它是一个带有生命周期钩子的普通对象(初始渲染和其他渲染)。您可以阅读有关custom widgets there的更多信息。

访问帮助程序后,您可以使用the helper API进行读写。

答案 1 :(得分:0)

这可以在search.searchParameters

下找到

所以:

console.log(search.searchParameters);

将为您提供完整的对象,然后您可以使用它。

然而,这有一个问题,那就是它只适用于初始加载。在开始选择类别后,我无法完成此工作或获取任何数据。因此,如果有人知道如何使用它,那么每次选择后它都会更新,请发表评论。