我需要你的帮助
我在用户meta中有一个数组式渡假胜地
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中的$ value带有空格,例如localhost / St Moritz
如何用href $ value中的连字符替换所有空格?
谢谢)
答案 0 :(得分:1)
尝试一下
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
答案 1 :(得分:1)
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>';
}
}
}
尝试一下。 我希望这项工作对您有用。谢谢
答案 2 :(得分:0)
问题通过功能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>';
}
}
谢谢!