wp_star_rating

函数
wp_star_rating ( $args = array() )
参数
  • (array) $args { Optional. Array of star ratings arguments. @type int|float $rating The rating to display, expressed in either a 0.5 rating increment, or percentage. Default 0. @type string $type Format that the $rating is in. Valid values are 'rating' (default), or, 'percent'. Default 'rating'. @type int $number The number of ratings that makes up this rating. Default 0. @type bool $echo Whether to echo the generated markup. False to return the markup instead of echoing it. Default true. }
    Required:
    Default: array()
返回值
  • (string) Star rating HTML.
定义位置
相关方法
wp_installingwp_user_settingswp_set_all_user_settingswp_list_sortwp_stream_image
引入
3.8.0
弃用
-

wp_star_rating。它生成了一个HTML格式的星级显示: 该函数接受一个整数等级(1到5),并生成相应数量的满星和空星来显示该等级。

输出一个带有给定等级的星级评价的HTML元素。

输出一个HTML元素,该元素的星级以0…5为单位,以半星为增量(即1、1.5、2星)。如果指定的话,也可以通过$number参数来显示评分的数量。

function wp_star_rating( $args = array() ) {
	$defaults    = array(
		'rating' => 0,
		'type'   => 'rating',
		'number' => 0,
		'echo'   => true,
	);
	$parsed_args = wp_parse_args( $args, $defaults );

	// Non-English decimal places when the $rating is coming from a string.
	$rating = (float) str_replace( ',', '.', $parsed_args['rating'] );

	// Convert percentage to star rating, 0..5 in .5 increments.
	if ( 'percent' === $parsed_args['type'] ) {
		$rating = round( $rating / 10, 0 ) / 2;
	}

	// Calculate the number of each type of star needed.
	$full_stars  = floor( $rating );
	$half_stars  = ceil( $rating - $full_stars );
	$empty_stars = 5 - $full_stars - $half_stars;

	if ( $parsed_args['number'] ) {
		/* translators: 1: The rating, 2: The number of ratings. */
		$format = _n( '%1$s rating based on %2$s rating', '%1$s rating based on %2$s ratings', $parsed_args['number'] );
		$title  = sprintf( $format, number_format_i18n( $rating, 1 ), number_format_i18n( $parsed_args['number'] ) );
	} else {
		/* translators: %s: The rating. */
		$title = sprintf( __( '%s rating' ), number_format_i18n( $rating, 1 ) );
	}

	$output  = '<div class="star-rating">';
	$output .= '<span class="screen-reader-text">' . $title . '</span>';
	$output .= str_repeat( '<div class="star star-full" aria-hidden="true"></div>', $full_stars );
	$output .= str_repeat( '<div class="star star-half" aria-hidden="true"></div>', $half_stars );
	$output .= str_repeat( '<div class="star star-empty" aria-hidden="true"></div>', $empty_stars );
	$output .= '</div>';

	if ( $parsed_args['echo'] ) {
		echo $output;
	}

	return $output;
}

常见问题

FAQs
查看更多 >