Wordpress + Algolia查询参数冲突

时间:2016-04-28 07:57:57

标签: 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. 时不会执行任何操作
  3. 将Algolia的查询参数更改为Wordpress不会将其作为搜索查询的内容,问题似乎是&p=0,删除此内容,然后根据需要重新加载页面。
  4. PS!在Wordpress永久链接设置中,我选择了http://www.domain.com/%postname%/

1 个答案:

答案 0 :(得分:6)

看起来你已经意识到了这一点,但是由于其他人可能偶然发现你的问题,我只是在这里指出,Algolia for WordPress集成在撰写本文时目前处于 beta和不支持(请参阅the repo's README中的警告)。

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

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

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

  

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

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

  

用于定义替换查询参数的对象,以代替另一个使用。密钥是当前查询参数并且对新值进行评估,例如, { q: 'query' }

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