我需要你的帮助
我有一个阵列山胜地
array(1) {
[0]=>
array(3) {
[0]=>
string(19) "Courchevel"
[1]=>
string(21) "Kitzbuhel"
[2]=>
string(14) "St Moritz"
}
}
我使用foreach
if (! empty($resorts)) {
foreach ($resorts[0] as $value) {
echo '<a href="' . esc_url(home_url( $value )) . ' class="link">' . $value . '</a>';
}
}
但是,HREF中的$值有空间,例如Localhost/st Moritz
如何将所有空间替换为href $ value中的连字符?
谢谢)
尝试此
if (! empty($resorts)) {
foreach ($resorts[0] as $value) {
echo '<a href="' . esc_url(home_url( sanitize_title($value))) . ' class="link">' . $value . '</a>';
}
}
参考 - https://codex.wordpress.org/function_reference/sanitize_title
if (! empty($resorts)) {
foreach ($resorts[0] as $value) {
$value_for_text = $value;
$value_for_url = $value;
$url = explode(" ",$value);
$final_url = "";
if(is_array()){
foreach($url as $url_text){
$final_url .= $url_text;
}
echo '<a href="' . esc_url(home_url( $final_url )) . ' class="link">' . $value_for_text . '</a>';
}
else{
echo '<a href="' . esc_url(home_url( $value )) . ' class="link">' . $value_for_text . '</a>';
}
}
}
尝试一下。我希望这项工作适合您。谢谢
该问题通过函数str_replace
解决if (! empty($resorts)) {
foreach ($resorts[0] as $value) {
$spaces= array(" ");
$value_url = str_replace($spaces, "-", $value);
echo '<a href="' . esc_url(home_url( $value_url )) . ' class="link">' . $value . '</a>';
}
}
谢谢大家)