ADD_REWRITE_RULE对语言特定字符无效

时间:2017-08-06 作者:HOY

我的默认搜索查询:

example.com/search/?search_text=keyword
我想要改变的是:

example.com/search/keyword
所以我在我的function.php

add_rewrite_rule(\'^search/([^/]*)?\',\'index.php?pagename=search&search_text=$matches[1]\',\'top\');
对于英文字母表很好,但每当我用我的语言搜索关键字时,如下所示:

example.com/search/kırmızı
页面标题变为:k%C4%B1rm%C4%B1z%C4%B1 没有返回结果。

如果你需要更多细节,请告诉我。

1 个回复
最合适的回答,由SO网友:Johansson 整理而成

这是由于编码造成的。我假设您的搜索页面中有一个函数,您可以获取并使用该函数search_text 在该模板内。在执行此操作之前,应先对URL进行解码。

这个urldecode() 功能将是您所寻找的。您的字符串也是UTF-8编码的,因此您需要:

$string = utf8_decode( urldecode( $_GET[\'search_text\'] ) );
现在,您可以在搜索中使用解码的字符串。

结束

相关推荐

Custom search results

我有一个Wordpress自定义搜索表单,用于搜索各种建筑的楼层。例如,当用户搜索1000到1500平方英尺之间的楼层时,他将获得所有在这些值之间具有自由楼层空间的建筑的列表。搜索值存储在Cookie中,因为我需要它们出现在单体建筑页面上。在“single building”页面上,有一个部分显示符合用户搜索条件的楼层。它与我不久前添加的地板配合得很好。当我添加新楼层时,它们不会显示在单体建筑页面上那会是什么?以下是我编写的代码,用于将匹配的楼层显示到单个建筑页面:<table class=\"ta