Вопрос по пхп

D
На сайте с 28.06.2008
Offline
1114
553

У меня сайт размечен микроразметкой схема, сайт живой, достаточно посещаем, рейтинги реальные.

Но уже год в гугле звезды в снипетах не появляются.

Прочитал что гугл не особо любит когда разметка сделана в тегах мета, лучше делать в спанах.

Ну так как я ниче не теряю, решил попробовать, но пхп я не знаю и вот вопрос

счетчик комментов у меня выводится таким кодом

<?php echo $this->comments; ?>

на странице это будет например "20 отзывов" . просто окружить этот код так

<span itemprop="ratingCount"><?php echo $this->comments; ?></span>

нельзя ибо окружать микроразметкой нужно только целое число.

Я поднялся на уровень выше и нашел где эта переменная задается, вот как это реализовано

$comments = stString::declension($item->comments, array('отзыв','отзыва','отзывов'));

Вопрос - куда и как вставить <span itemprop="ratingCount">...</span> ?

S
На сайте с 17.06.2017
Offline
0
#1
Dram:

куда и как вставить <span itemprop="ratingCount">...</span> ?

Туда, где непосредственно формируется текст с количеством комментариев. То, что Вы показали, это уже выдача "готового результата".:)

"Подняться" на один уровень здесь явно недостаточно. Очевидно текст формируется в функции declension. Поэтому, ищите в её коде. Класс явно нестандартный, поэтому наверняка, где-то в недрах CMS это должно быть.

S
На сайте с 13.10.2014
Offline
171
#2

<span itemprop="ratingCount"><?php echo $item->comments; ?></span>

конечно, если функция declension занимается только тем, что выводит падеж

M
На сайте с 01.05.2010
Offline
53
#3

Вместо

<?php echo $this->comments; ?>

пишешь

<?php $str = $this->comments;
$arr = explode(" ", $str);
?>

<span itemprop="ratingCount"><? echo $arr[0];?></span> <?echo $arr[1];?>

Блог web-разработчика (https://www.mgordeev.ru/) Создание и техподдержка сайтов (https://www.gmsite.ru/)
D
На сайте с 28.06.2008
Offline
1114
#4

Сделал так:

<?php $str = $this->comments;
$arr = explode(" ", $str);
?>
<span itemprop="ratingCount"><? echo $arr[0];?></span> <?echo $arr[1];?>

В итоге слово "20 отзывов" вообще пропало

M
На сайте с 01.05.2010
Offline
53
#5

странно, не может быть такого

<?php $str1 = $this->comments;

$arr1 = explode(" ", $str1);

?>

<span itemprop="ratingCount"><?php echo $arr1[0];?></span> <?php echo $arr1[1];?>

попробуй так.

D
На сайте с 28.06.2008
Offline
1114
#6

Спасибо, теперь все норм!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий