在我的wordpress网站上,试着用一种简单快捷的方式从一个数字建立一个星级系统。
下面是我的代码:
<?php
$stars = $business['rating'];
settype($stars, "integer");
switch ($stars) {
case 0:
echo '<img src="' . echo esc_url( home_url( '/' ) ); . 'wp-content/themes/child-theme/images/stars0.png" />';
break;
case 1:
echo '<img src="' . echo esc_url( home_url( '/' ) ); . 'wp-content/themes/child-theme/images/stars1.png" />';
break;
case 2:
echo '<img src="' . echo esc_url( home_url( '/' ) ); . 'wp-content/themes/child-theme/images/stars2.png" />';
break;
case 3:
echo '<img src="' . echo esc_url( home_url( '/' ) ); . 'wp-content/themes/child-theme/images/stars3.png" />';
break;
case 4:
echo '<img src="' . echo esc_url( home_url( '/' ) ); . 'wp-content/themes/child-theme/images/stars4.png" />';
break;
case 5:
echo '<img src="' . echo esc_url( home_url( '/' ) ); . 'wp-content/themes/child-theme/images/stars5.png" />';
break;
}
?>看起来它应该是有效的,但它就是不会出现。
发布于 2014-08-05 05:45:33
当你运行代码的时候会发生什么?
$business‘’rating‘的可能值是什么
如果可能的值都是不以数字开头的字符串,则当$stars转换为整数时,$stars将转换为0。
在这种情况下,案例0将始终匹配。
通过删除案例0添加一个
default:
echo "No case matched: $stars for $business['rating']".在连接时,也不能在esc_url()函数之前添加另一个echo语句,并在函数后面添加分号:
echo '<img src="' . esc_url( home_url( '/' ) ) . 'wp-content/themes/child-theme/images/stars0.png" />';这可能是一个语法错误,导致您的代码无法工作。
https://stackoverflow.com/questions/24708027
复制相似问题