我在wordpress中为模板添加一个函数,用于将变量($ location)链接到搜索该位置的所有事件。这主要涉及使用$ location作为搜索字符串创建指向网站搜索结果的链接。然而,我遇到的问题是虽然在URL之外我可以调用$ location变量并且它保留位置名称中的空格:
NRS Arena
当我在url中使用变量时,它出现为
NRSArena
我的搜索字词。我真的需要将术语格式化为
NRS +竞技场 要么 NRS%20Arena
在搜索字符串中有效使用。
这是我的代码:
$html .= html( 'a', array( 'href' => esc_url( get_site_url() . '/?st=event&ls=' . $location . '&location='), 'target' => '_blank' ), $location));
所以在哪里
$ location = NRS Arena
我希望它像这样输出HTML:
<a target="_blank" href="http://www.mysiteurl.com/?st=event&ls=NRS+Arena&location=">NRS Arena</a>
甚至是NRS和Arena之间的%20都可以,而不是+
而是输出:
<a target="_blank" href="http://www.mysiteurl.com/?st=event&ls=NRSArena&location=">NRS Arena</a>
通过删除URL中单词之间的空格,显然网站搜索无法正常工作。我不明白为什么在URL之外使用$ location会保留空间,但在URL内部却没有。
任何帮助都将不胜感激。
答案 0 :(得分:0)
您有两种选择:
rawurlencode
- 返回%20 $ html。= html(&#39; a&#39;,数组(&#39; href&#39; =&gt; esc_url(get_site_url()。&#39; /?st = event&amp; ls =& #39; .rawurlencode($ location)。&#39;&amp; location =&#39;),&#39; target&#39; =&gt;&#39; _blank&#39;),$ location));
$ html。= html(&#39; a&#39;,数组(&#39; href&#39; =&gt; esc_url(get_site_url()。&#39; /?st = event&amp; ls =& #39; .url_encode($ location)。&#39;&amp; location =&#39;),&#39; target&#39; =&gt;&#39; _blank&#39;),$ location));