2014-11-01 37 views
0

我正在向wordpress中的模板添加一個函數,以將變量($ location)鏈接到搜索該位置的所有事件。這基本上涉及用$ location作爲搜索字符串創建一個鏈接到網站的搜索結果。但是我遇到的問題是,雖然URL之外我可以調用$位置變量,並將其保存在位置名稱空間:當我使用網址中的變量在Wordpress中保留URL中Echo變量的格式

NRS競技場

,它出來爲

NRSArena

我的搜索詞。我真的需要這個術語被格式化爲

NRS +競技場 或 NRS%20Arena

在搜索字符串的有效使用。

這裏是我的代碼:

對於其中

$位置= NRS競技場

我希望它輸出HTML像這樣

$html .= html('a', array('href' => esc_url(get_site_url() . '/?st=event&ls=' . $location . '&location='), 'target' => '_blank'), $location)); 

所以:

<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

... ls ='。url_encode($ location).'... – 2014-11-01 23:32:41

回答

0

你有兩個選擇:

  1. 使用rawurlencode - 回報率%20

$的HTML = HTML( 'A',陣列(「HREF => esc_url(get_site_url(。 )'/?st = event & ls ='。rawurlencode($ location)。'& location ='),'target'=>'_blank'),$ location));

  • 使用url_encode - 返回+
  • $ HTML = HTML( '一個',陣列( 'HREF'=> esc_url(get_site_url() 。'/?st = event & ls ='。url_encode($ location)。'& location ='),'target'=>'_blank'),$ location));

    +0

    謝謝你的工作完美,儘管對我來說,至少我不得不使用urlencode($ location),因爲url_encode($ location)由於某種原因在頁面上打破了一些格式。謝謝你從一個自學的PHP新手! – 2014-11-01 23:49:45