#wordpress #templates #rating-system
Вопрос:
Я новичок в кодировании и wordpress/woocommerce и пытаюсь найти простой способ редактирования выходных wc_get_rating_html
данных .
На данный момент он выводит следующее:
function wc_get_rating_html( $rating ) {
if ( $rating > 0 ) {
$rating_html = '<div class="star-rating" title="' . sprintf( esc_attr__( 'Rated %s out of 5', 'woocommerce' ), $rating ) . '">';
$rating_html .= '<span style="width:' . ( ( $rating / 5 ) * 100 ) . '%"><strong class="rating">' . $rating . '</strong> ' . esc_html__( 'out of 5', 'woocommerce' ) . '</span>';
$rating_html .= '</div>';
} else {
$rating_html = '';
}
return apply_filters( 'woocommerce_product_get_rating_html', $rating_html, $rating );
}
Я просто хочу вывести звездный рейтинг, а не текст, который идет до и после. Любые предложения о том, как я могу это сделать, поскольку я не могу редактировать файл шаблона. Спасибо
Ответ №1:
WordPress использует фильтры, которые позволяют вам заменять и/или изменять вывод того, что обрабатывает фильтр. Вот полный блок для wc_get_rating_html
функции:
function wc_get_rating_html( $rating, $count = 0 ) {
$html = '';
if ( 0 < $rating ) {
/* translators: %s: rating */
$label = sprintf( __( 'Rated %s out of 5', 'woocommerce' ), $rating );
$html = '<div class="star-rating" role="img" aria-label="' . esc_attr( $label ) . '">' . wc_get_star_rating_html( $rating, $count ) . '</div>';
}
return apply_filters( 'woocommerce_product_get_rating_html', $html, $rating, $count );
}
В вашем примере woocommerce_product_get_rating_html
является именем фильтра и принимает три аргумента:
$rating_html
который представляет собой вывод, который видит пользователь
$rating
каков числовой рейтинг
$count
это общее количество рейтингов.
Если вы хотите заменить вывод, вам нужно будет подключиться к фильтру woocommerce_product_get_rating_html
с помощью функции, которая вернет измененное содержимое. Вам определенно нужно будет просмотреть крючки и фильтры и то, как они работают в WordPress, если вы не знакомы с использованием крючков и фильтров в WordPress.