在我的Wordpress网站上,我使用Algolia搜索Woocommerce产品。
一切都在类别页面上按预期工作,例如 www.example.com/products
域根目录上出现问题。当我进行搜索时,正在添加查询参数:www.example.com/?q=myquery&hPP=12&idx=all&p=0&is_v=1
,现在如果我重新加载页面,我将被带到博客文章的页面,很可能是 Wordpress 原生搜索结果......
所需的操作将与类别页面上或 root 以外的任何地方的操作相同,以便在页面重新加载后,它应该显示具有完全相同搜索查询的完全相同的页面。
我能想到的可能解决方案:
- 禁用 Wordpress 的查询参数,以便在 URL 包含查询参数时不会执行任何操作
- 将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' }
.