繁体   English   中英

将数字转换为星级 php 简码?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM