对标记进行编码以在algolia中使用的最佳方法是什么?

时间:2018-01-03 23:34:53

标签: wordpress algolia

我有一个文章页面,其中列出了与该文章相关的标签。当用户点击标签时,它会将它们带到Algolia搜索结果页面。这是一个Wordpress网站。我的一些标签碰巧包含了&符号,例如" Spades&例如,Shovels&#34 ;.

我注意到的是,当我对此术语进行urlencode时,当我通过查询字符串发送搜索时,它不会在搜索框中正确显示搜索字词。

我试过这个并认为这是秘诀,但它并不总是有效。

$tag_name = json_encode(urlencode(html_entity_decode($tag->name)));

对标记名称进行编码的最佳方法是什么,以便当我通过查询字符串将其传递到搜索结果页面时,它会正确处理它?<​​/ p>

我做了更多测试,我在搜索结果页面上注意到一些奇怪的事情。如果我来搜索页面时搜索框字段为空,但是传递了post_id(我在动态加载与过滤器部分中的帖子相关联的标签),我可以看到&#34;黑桃&amp;铲&#34;在那里列出,它的数量为&#34; 65&#34;在它旁边。

如果我输入&#34;黑桃&amp;铲&#34;进入搜索框,我看到边栏中的数字很快下降到10。

当我在查询字符串中传递标记时,无论我如何编码它,它似乎都不起作用。我的意思是我看到了Spades&amp; amp;铲入搜索框,但我没有得到任何结果。它非常奇怪,但可能是我想要解决的简单事情。我需要能够通过&amp;在我的搜索结果页面的查询字符串中,但我没有找到在网址中发送&符号的正确公式,以便工作。

我在查询字符串中传递的值似乎与实际标记名称不完全匹配。

我尝试了所有这些可能性和不同的组合:

$clean_tag = json_encode(urlencode(html_entity_decode($tag->name)));

$clean_tag = htmlspecialchars_decode($clean_tag);

$clean_tag = html_entity_decode($clean_tag);

$clean_tag = urlencode($clean_tag);

$clean_tag = htmlentities($clean_tag);

$clean_tag = html_entity_decode($clean_tag);

$clean_tag = json_encode($clean_tag);

这些似乎都无法解决问题。有什么想法吗?

0 个答案:

没有答案