WordPress + Algolia 查询参数冲突


Wordpress + Algolia query parameters conflict

在我的Wordpress网站上,我使用Algolia搜索Woocommerce产品。

一切都在类别页面上按预期工作,例如 www.example.com/products

域根目录上出现问题。当我进行搜索时,正在添加查询参数:www.example.com/?q=myquery&hPP=12&idx=all&p=0&is_v=1,现在如果我重新加载页面,我将被带到博客文章的页面,很可能是 Wordpress 原生搜索结果......

所需的操作将与类别页面上或 root 以外的任何地方的操作相同,以便在页面重新加载后,它应该显示具有完全相同搜索查询的完全相同的页面。

我能想到的可能解决方案:

  1. 禁用 Wordpress 的查询参数,以便在 URL 包含查询参数时不会执行任何操作
  2. 将Algolia的查询参数更改为Wordpress不会作为搜索查询的内容,问题似乎是&p=0,删除它,然后重新加载页面可以根据需要工作。

嗡!在Wordpress永久链接设置中,我选择了http://www.domain.com/%postname%/

您似乎已经意识到了这一点,但是由于其他人可能会偶然发现您的问题,因此我只想在这里声明,在撰写本文时,WordPress集成的Algolia目前处于测试阶段并且不受支持(请参阅存储库自述文件中的警告)。

此外,根据您正在谈论的参数,您似乎正在使用存储库开发分支中的最新版本。

在此版本中,查询参数由内部使用的库添加到 URL 中,称为 instantsearch.js


此库在初始化时公开 urlSync.useHash 参数,该参数将使库将这些参数存储在哈希中而不是查询参数中。只需将其设置为 true .

如果设置为 true,则 url 将基于哈希。否则,它将使用通过新式历史记录 API 的查询参数。


由于这里似乎只有一个参数会导致麻烦,因此urlSync.mapping参数可能是更好的解决方案。但是,我不确定此选项在集成使用的instantsearch.js版本中是否可用。

用于定义替换查询参数以代替另一个查询参数的对象。键是当前查询参数,并值新值,例如 { q: 'query' } .

在您的情况下,这将是{ p: 'new_parameter_name_that_wont_conflict' }.