0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 2769 Просмотров
*

Amigo9876

  • Осваиваюсь на форуме
  • 29
  • 2 / 0
Просто хочу поделиться.
В конечном счете микроразметка JSON выглядит так на моем сайте:

Код
<script type="application/ld+json">
{
  "@context": "http://schema.org/",
  "@type": "NewsArticle",
  "headline": "Елисеев выиграл спринт на летнем чемпионате России",
  "author": "Николай Довженко",
  "image": "http://wcbiathlon.ru/images/phh-b/disp/eliseev-1.jpg",
  "description": "Матвей Елисеев выиграл мужскую спринтерскую гонку на чемпионате России по летнему биатлону. Представитель Москвы не допустил ни одного промаха и...",
"publisher" : {
"@type" : "Organization",
"name" : "Wcbiathlon",
"logo" : "http://wcbiathlon.ru/templates/rt_solarsentinel_j15/images/header/blue/header-bg400.jpg"
}, 
  "url": "http://wcbiathlon.ru/news/5510-mspr-rusl.html",
  "mainEntityOfPage": {
         "@type": "WebPage",
         "@id": "http://wcbiathlon.ru/news/5510-mspr-rusl.html"
      },
  "datePublished": "2017-09-23"
}
</script>

Вставить в head у меня не получилось, да это и не нужно.
Заходим в /com_content/article/default.php. Или с корня сайта, или в папке вашего шаблона.

Вставляем вот такой php код

Код
<?php		
$doc = new DOMDocument();
$doc->loadHTML($this->article->introtext);
$xpath = new DOMXPath($doc);
$src = $xpath->evaluate("string(//img/@src)"); # "/images/image.jpg"
$timage= 'http://wcbiathlon.ru/images/phh-b/1314/logo/header.jpg';
if($src!="")
{
if(strpos($src,"http://wcbiathlon.ru/")===false)
$src="http://wcbiathlon.ru/".$src;
$timage=$src;
}
$k = trim(preg_replace('/\s\s+/', ' ', strip_tags($this->article->introtext)));
$k1=explode(" ",$k);
$k1=array_slice($k1,0,20);
$k=implode(" ",$k1)."...";
$doc =& JFactory::getDocument();

?>

По умолчанию берется первая картинка, вставленная через обычный редактор.
Если картинок в материале нет, то должна быть дефолтная, для этого есть строка:
$timage= 'http://wcbiathlon.ru/images/phh-b/1314/logo/header.jpg';

И теперь весь JSON вставляется таким образом: (в этом же файле)

Код
<script type="application/ld+json">
{
  "@context": "http://schema.org/",
  "@type": "NewsArticle",
  "headline": "<?php echo $this->article->title ?>",
  "author": "<?php echo $this->article->author ?>",
  "image": "<?php echo $timage ?>",
  "description": "<?php echo $k ?>",
"publisher" : {
"@type" : "Organization",
"name" : "Имя вашей организации",
"logo" : "ссылка на логотип"
}, 
  "url": "<?php echo JURI::current()?>",
  "mainEntityOfPage": {
         "@type": "WebPage",
         "@id": "<?php echo JURI::current()?>"
      },
  "datePublished": "<?php echo JHTML::_('date', $this->article->created, JText::_('DATE_FORMAT_JS1')); ?>"
}
</script>

Также нужно подкорректировать дату, чтобы она выводилась год-месяц-число.
Для этого идем в /language/ru-RU/ru-RU.ini
И правим там строчку
DATE_FORMAT_JS1
На DATE_FORMAT_JS1=%Y-%m-%d

Проходит валидацию, хоть и выдает 2 предупреждения.
Можно еще добавить:   
Код
"dateModified" : "<?php echo JHTML::_('date', $this->article->modified, JText::_('DATE_FORMAT_JS1')); ?>"
Но если материал никогда не изменялся, то почему то выдает дату 1999-11-30. Не знаю чем это чревато, поэтому решил просто не добавлять.

P.S. Если хотите, чтобы ваши материалы красиво выводились и в социальных сетях, то добавьте внутрь php кода еще вот это:

Код
$doc->addCustomTag( '
<meta property="og:title" content="'.$this->escape($this->article->title).'"/>
<meta property="og:url" content="'.JURI::current().'"/>
<meta property="og:image" content="'.$timage.'"/>
<meta property="og:site_name" content="site.ru"/>
<meta property="og:description" content="'.$k.'"/>
');
*

krot

  • Осваиваюсь на форуме
  • 28
  • 0 / 0
  • krot
Спасибо за инфу! Хочу уточнить только.
Код
"dateModified" : "<?php echo JHTML::_('date', $this->article->modified, JText::_('DATE_FORMAT_JS1')); ?>"
Куда конкретно добавляется? В Google пишет: Рекомендуется заполнять поле dateModified.
А 2е предупреждение: сайт.ру  (Атрибут logo.itemtype имеет недопустимое значение.)
В этой строке:
Код
"logo" :  "https://sait.ru/logo.png"
},

И еще когда я вставляю код в php в Яндекс пишет ошибку: поле http://ogp.me/ns#type отсутствует или пусто

Будьте, разъясните.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla и Amazon S3

Автор Ghost_370

Ответов: 14
Просмотров: 7967
Последний ответ 07.04.2019, 09:38:02
от powerful888
Соц.иконки добавить, Joomla 1.5.26

Автор nuon

Ответов: 1
Просмотров: 4278
Последний ответ 04.03.2018, 21:34:56
от nuon
Joomla 1.5.26 и мета теги

Автор SLdieR11

Ответов: 3
Просмотров: 3008
Последний ответ 17.10.2017, 10:53:54
от SeBun
не работает обратная связь на Joomla 1.5

Автор Oxxxytip

Ответов: 0
Просмотров: 756
Последний ответ 28.09.2017, 03:01:40
от Oxxxytip
Проблема Кэширование в Joomla 1.5.26

Автор berTalino

Ответов: 6
Просмотров: 954
Последний ответ 02.08.2017, 15:31:50
от berTalino