[英]Convert number to star rating php shortcode?
我使用以下代码在我的网站上的短代码中生成星级。
function Getrating() {
$starNumber = "5";
for($x=1;$x<=$starNumber;$x++) {
$output .= '<i class="fa fa-star" aria-hidden="true"></i>';
}
if (strpos($starNumber,'.')) {
$output .= '<i class="fa fa-star-half-o" aria-hidden="true"></i>';
$x++;
}
while ($x<=5) {
$output .= '<i class="fa fa-star-o" aria-hidden="true"></i>';
$x++;
}
return $output;
}
add_shortcode('starrating', 'Getrating');
我是 PHP 的新手,非常困惑。 我遇到的问题是,如何使$starNumber
成为可以在简码中更改的可变数字? 例如,如果我想用[starrating rating="3.5"]
类的简码显示 3.5 颗星
我尝试的一切似乎都破坏了简码。 任何帮助将不胜感激。
谢谢!
您需要将星号作为参数发送到 function,如下所示:
function Getrating($atts) {
//starNumber has a default value of 5 if it is not set in the short code
extract(shortcode_atts(array(
'starNumber' => 5,
), $atts));
for($x=1;$x<=$starNumber;$x++) {
$output .= '<i class="fa fa-star" aria-hidden="true"></i>';
}
if (strpos($starNumber,'.')) {
$output .= '<i class="fa fa-star-half-o" aria-hidden="true"></i>';
$x++;
}
while ($x<=5) {
$output .= '<i class="fa fa-star-o" aria-hidden="true"></i>';
$x++;
}
return $output;
}
//register the shortcode
function wp_shortcodes_init(){
add_shortcode('starrating', 'Getrating');
}
//tie the shortcode to WordPress initialization action
add_action('init', 'wp_shortcodes_init');
在 CMS 中使用短代码时,像这样使用它 [starrating starNumber="5"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.