Wordpress + Algolia查询参数冲突

Sil*_*vee 2 php wordpress algolia

在我的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,删除它,并根据需要重新加载页面.

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

Jer*_*ska 6

看起来你已经意识到了这一点,但是由于其他人可能偶然发现你的问题,我在这里只是声明Algolia for WordPress集成在撰写本文时目前处于测试版并且不受支持(请参阅警告在repo的自述文件中).

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

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


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

如果设置为true,则url将基于哈希.否则,它将使用现代历史API使用查询参数.


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

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

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