Для объединения рейтинга поста в мультиязычном сайте, использующем плагин Polylang для WordPress, вам понадобится немного кода на PHP.
- Сначала вам нужно установить и активировать плагин Polylang на своем сайте. После активации плагина вы сможете создавать и управлять мультиязычным контентом.
- Создайте пользовательское поле (post meta) для хранения рейтинга на каждом посте. Можно использовать функцию
add_post_meta()
, чтобы добавить это поле к каждому посту при его создании. Например:
function add_rating_field() { add_post_meta(get_the_ID(), 'rating', 0, true); } add_action('save_post', 'add_rating_field');
Этот код добавит поле 'rating' для каждого поста, и стандартное значение будет 0. Вы можете изменить это значение по умолчанию, если хотите.
- Затем вам нужно создать пользовательскую функцию, которая будет обновлять рейтинг поста на основе усредненных оценок всех языковых версий этого поста.
function update_post_rating($post_id) { $post_languages = pll_languages_list(); // получаем список языковых версий поста $total_rating = 0; $count = 0; foreach ($post_languages as $language) { $translation_id = pll_get_post($post_id, $language); // получаем ID языковой версии поста $rating = get_post_meta($translation_id, 'rating', true); // получаем рейтинг языковой версии поста if ($rating) { $total_rating += $rating; $count++; } } $average_rating = $count > 0 ? $total_rating / $count : 0; // вычисляем средний рейтинг update_post_meta($post_id, 'rating', $average_rating); // обновляем рейтинг основной версии поста } add_action('save_post', 'update_post_rating');
Этот код получает список языковых версий поста с помощью функции pll_languages_list()
. Затем он перебирает все языки и получает ID языковой версии каждого поста с помощью pll_get_post()
. Затем он получает рейтинг каждого языкового поста с помощью get_post_meta()
и вычисляет средний рейтинг.
Наконец, функция обновляет рейтинг основной версии поста с помощью update_post_meta()
.
- Теперь рейтинг каждого поста будет автоматически объединяться из всех языковых версий при сохранении. Вы можете использовать этот рейтинг где угодно на своем сайте, выводя его с помощью функции
get_post_meta()
.
Например:
$post_id = get_the_ID(); $rating = get_post_meta($post_id, 'rating', true); echo 'Рейтинг поста: ' . $rating;
Или вы можете использовать эту информацию для сортировки постов по рейтингу или отображения настраиваемого стиля в зависимости от значения рейтинга.
Таким образом, вы успешно объединили рейтинг поста при использовании плагина Polylang в PHP.