Микроразметка второго и третьего типа рейтинга полной новости в DLE
В одной из статей я подробно расписал, как сделать микроразметку рейтинга полной новости в CMS DataLife Engine для первого типа рейтинга.
Первый тип рейтинга, если вы не знаете, – это «оценка», то есть для оценки статьи используется рейтинг в пять звезд, где 1 звезда – минимальная оценка, 5 – максимальная.
Все бы ничего, но как быть в том случае, если материалы на вашем сайте оцениваются вторым типом рейтинга («мне нравится»), или третьим («нравится» / «не нравится»).
Этим вопросом задались читатели нашего сайта, и, немного подумав, я решил как это все можно организовать.
Микроразметка второго типа рейтинга («нравится») полной новости в DataLife Engine
Итак, что мы имеем во втором типе рейтинга? Отметку «нравится», то есть количество людей, которым понравилась та или иная новость. Это число мы возьмем за количество проголосовавших, а оценку мы зададим сами. Если число проголосовавших у нас равно 0, то оценка равняется 0, а если больше 0, то, например, 4.5.
1. Подключитесь к вашему сайту по FTP и откройте файл, отвечающий за вид полной новости (если вы ничего не меняли – это файл fullstory.tpl в папке вашей темы).
2. Далее в самый его верх вы вставляете:
<div itemscope itemtype="http://schema.org/Product">
После чего здесь же, в самый низ, вставляете:
<meta itemprop="name" content="{title}">
<div itemprop="aggregateRating" itemscope="" itemtype="http://schema.org/AggregateRating">
<meta itemprop="bestRating" content="5">
<meta itemprop="ratingValue" content="{numb_rate}">
<meta itemprop="ratingCount" content="{numb_vote}">
</div>
</div>
Здесь «5» – это тип шкалы (в нашем случае – 5-балльная шкала), {numb_rate} – оценка рейтинга, а {numb_vote} – количество людей, оценивших материал.
Сохраните изменения и отправьте файл на сайт.
3. Далее откройте файл show.full.php в папке /engine/modules/, найдите строку:
$tpl->set( '{rating}', ShowRating( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );
и сразу после нее вставьте:
if($row['vote_num'] == 0) { // Если оценок (количество) 0
$numb_rate = 0; // Оценка
$numb_vote = 0; // Количество оценок
} else { // Если оценок (количество) больше 0
$numb_rate = 4.5; // Оценка
$numb_vote = $row['vote_num']; // Количество оценок
}
$tpl->set('{numb_rate}', $numb_rate);
$tpl->set('{numb_vote}', $numb_vote);
Сохраните изменения и отправьте файл обратно на сайт.
4. Очистите кэш. Установка закончена.
Микроразметка третьего типа рейтинга («нравится» / «не нравится») полной новости в DataLife Engine
В этом типе рейтинга мы имеем также количество оценивших материал плюс саму оценку, либо положительную, либо отрицательную, что нам не совсем подходит.
Поэтому при отрицательном общем балле рейтинга мы будем переводить оценку в 1, при нуле – в 0, а при более нуля – нужный нам рейтинг, например, тот же 4.5.
1. Подключитесь к вашему сайту по FTP и откройте файл, отвечающий за вид полной новости (если вы ничего не меняли – это файл fullstory.tpl в папке вашей темы).
2. Далее в самый его верх вы вставляете:
<div itemscope itemtype="http://schema.org/Product">
После чего здесь же, в самый низ, вставляете:
<meta itemprop="name" content="{title}">
<div itemprop="aggregateRating" itemscope="" itemtype="http://schema.org/AggregateRating">
<meta itemprop="bestRating" content="5">
<meta itemprop="ratingValue" content="{numb_rate}">
<meta itemprop="ratingCount" content="{numb_vote}">
</div>
</div>
Здесь «5» – это тип шкалы (в нашем случае – 5-балльная шкала), {numb_rate} – оценка рейтинга, а {numb_vote} – количество людей, оценивших материал.
Сохраните изменения и отправьте файл обратно на сайт.
3. Далее откройте файл show.full.php в папке /engine/modules/, найдите строку:
$tpl->set( '{rating}', ShowRating( $row['id'], $row['rating'], $row['vote_num'], $user_group[$member_id['user_group']]['allow_rating'] ) );
и сразу после нее вставьте:
if($row['vote_num'] == 0) { // Если оценок (количество) 0
$numb_rate = 0; // Оценка
$numb_vote = 0; // Количество оценок
} else { // Если оценок (количество) больше 0
if($row['rating'] < 0) { // Если оценка меньше 0
$numb_rate = 1; // Оценка
} elseif($row['rating'] > 0) { // Если оценка больше 0
$numb_rate = 4.5; // Оценка
} else { // Если оценка 0
$numb_rate = 0; // Оценка
}
$numb_vote = $row['vote_num']; // Количество оценок
}
$tpl->set('{numb_rate}', $numb_rate);
$tpl->set('{numb_vote}', $numb_vote);
Сохраните изменения и отправьте файл обратно на сайт.
4. Очистите кэш. Установка закончена.
Время, после которого в поиске появится рейтинг у вашего сайта, в среднем – пара недель.
Мы используем разметку для товаров, и поскольку (вероятнее всего) у вас не интернет-магазин, то при проверке разметки через валидатор могут появиться ошибки. Не обращайте на них внимания, как показывает практика – рейтинг в поиске и так должен появиться.
Если этого не произошло – пишите об этом в комментариях, постараюсь расширить разметку для исправления ошибок в рамках разумного.