# wp_star_rating()

URL: https://chugunov.pro/api-wordpress/functions/wp_star_rating/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 4.4.0.

## Сигнатура

```php
wp_star_rating( array $args = array() ): string
```

## Описание

Выводит HTML-элемент со звёздным рейтингом по шкале от 0 до 5 с шагом в половину звезды (например, 1, 1.5, 2 звезды). При необходимости можно также вывести количество оценок, передав параметр $number.

## Параметры

- `$args` `array` — необязательный, по умолчанию `array()`. Массив аргументов звёздного рейтинга.
  
  rating int|floatОценка для отображения, заданная либо с шагом 0.5, либо в процентах. Значение по умолчанию — 0.
  
  type stringФормат, в котором задан $rating. Допустимые значения — 'rating' (по умолчанию) или 'percent'. Значение по умолчанию — 'rating'.
  
  number intКоличество оценок, составляющих этот рейтинг. Значение по умолчанию — 0.
  
  echo boolВыводить ли сгенерированную разметку. False — возвращать разметку вместо вывода. Значение по умолчанию — true.

## Возвращаемое значение

`string`

## Исходный код

Файл: `wp-admin/includes/template.php:2766`

```php
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: Hidden accessibility text. 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: Hidden accessibility text. %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;
}
```

## История изменений

- 4.4.0 — Introduced the echo parameter.
- 3.8.0 — Introduced.

## Связанные

Использует: [`_n`](https://chugunov.pro/api-wordpress/functions/_n/), [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`wp_parse_args`](https://chugunov.pro/api-wordpress/functions/wp_parse_args/), [`number_format_i18n`](https://chugunov.pro/api-wordpress/functions/number_format_i18n/).
Используется в: `WP_Customize_Manager::handle_load_themes_request`, `WP_Theme_Install_List_Table::install_theme_info`, [`install_plugin_information`](https://chugunov.pro/api-wordpress/functions/install_plugin_information/), `WP_Plugin_Install_List_Table::display_rows`, [`wp_ajax_query_themes`](https://chugunov.pro/api-wordpress/functions/wp_ajax_query_themes/), [`themes_api`](https://chugunov.pro/api-wordpress/functions/themes_api/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_star_rating/
