Как вывести дескрипшн?

InstantCMS 2.X

Вывести дескрипшн для Опен Граф

#1 22 января 2018 в 12:10
Приветствую.
Кто подскажет?

Суть в следующем надо вывести дескрипшн для тега Опен граф

  1.  
  2. <meta property="og:description" content="Здесь описание.">
  3.  
Доска объявлений стоит на главной но штатный компонент не прописывает Опен граф для главной и списков страниц. Поэтому хочу его вообще отключить и вывести разметку на все страницы в ручную.

Подобная тема были, но что то не то..., не выводится.
Пробовал вывести так:

  1.  
  2. <meta property="og:description" content="<?php $this->setPageDescription($ctype['seo_desc']); ?>">
  3.  
Не выводится ((

Собственно все затеялось из-за изображений которые при добавлении главной страницы в ОК хватает для постинга первое попавшееся на странице изображение.

Поэтому хочу указать статичное изображение на все страницы, а остальное что бы брало из метатегов.

Может быть кто подскажет другое решение…
#2 22 января 2018 в 12:34
Посмотрите system/core/template.php функцию head(). Там есть вывод тега description.
#3 22 января 2018 в 13:12

Посмотрите system/core/template.php функцию head(). Там есть вывод тега description.

@IamB

Это? (строка 130)

  1.  
  2. if (!empty($this->metadesc)){
  3. echo "\t". '<meta name="description" content="'.htmlspecialchars(!empty($this->metadesc_item) ? string_replace_keys_values_extended($this->metadesc, $this->metadesc_item) : $this->metadesc).'">' ."\n";
  4. }
  5. }
  6.  
Пробовал так

  1.  
  2. <meta property="og:description" content="<?php $this->metadesc(); ?>">
  3.  
и так:

  1.  
  2. <meta property="og:description" content="<?php $this->metadesc_item(); ?>">
  3.  
Белая страница(
#4 22 января 2018 в 13:41
Сделал так:

  1.  
  2. <?php
  3. if (!empty($this->metadesc)){
  4. echo "\t". '<meta property="og:description" content="'.htmlspecialchars(!empty($this->metadesc_item) ? string_replace_keys_values_extended($this->metadesc, $this->metadesc_item) : $this->metadesc).'">' ."\n";
  5. }
  6. ?>
  7.  
Выводит то что надо.
#5 22 января 2018 в 16:15

Выводит то что надо.

Rainbow
Отлично.
#6 22 января 2018 в 16:52
Однако не решил главную проблему из-за которой все делал.

Собственно все затеялось из-за изображений которые при добавлении главной страницы в ОК хватает для постинга первое попавшееся на странице изображение.

Rainbow

Указал статичную картинку для постинга в сети, так:

  1.  
  2.  
  3. <meta property="og:image" content="https://site.ru/templates/images/il600.jpg">
  4. <meta property="og:image:type" content="image/jpg">
  5. <meta property="og:image:height" content="200">
  6. <meta property="og:image:width" content="200">
  7.  
Только все равно её не подхватывает. Берет первое изображение на странице. scratch

Может кто подскажет, что можно сделать.
#7 22 января 2018 в 17:15

Только все равно её не подхватывает. Берет первое изображение на странице

Rainbow
А валидатору Open Graph какому-нибудь показывали страницу — что говорит?
#8 22 января 2018 в 18:23
Разобрался, неправильный адрес указал stuk

Кроме того, кто будет использовать на сайте по https надо еще добавить
og:image:secure_url для изображения, так:

  1.  
  2. <meta property="og:image" content="http://site.ru/templates/images/il600.jpg">
  3. <meta property="og:image:secure_url" content="https://site.ru/templates/images/il600.jpg">
  4. <meta property="og:image:type" content="image/jpg">
  5. <meta property="og:image:height" content="200">
  6. <meta property="og:image:width" content="200">
  7.  

А валидатору Open Graph какому-нибудь показывали страницу — что говорит?

Sonat

Сейчас нормально стало, только не пойму почему ругается на URL пишет:


microdata
ОШИБКА: невозможно определить принадлежность данных полей. Возможны две причины: эти поля некорректно размещены, либо указан лишний атрибут itemprop

itemType =
url = site.ru


Адрес канонический…
#9 23 января 2018 в 10:21
В общем кому понадобится разметка Open Graph со статичным изображением для всех страниц. Решение:

  1.  
  2. <meta property="og:title" content="<?php $this->title(); ?>"/>
  3. <?php
  4. if (!empty($this->metadesc)){
  5. echo "\t". '<meta property="og:description" content="'.htmlspecialchars(!empty($this->metadesc_item) ? string_replace_keys_values_extended($this->metadesc, $this->metadesc_item) : $this->metadesc).'"/>' ."\n";
  6. }
  7. ?>
  8. <meta property="og:type" content="website"/>
  9. <meta property="og:url" content= "<?php echo $config->host . $core->uri_absolute; ?>"/>
  10. <meta property="og:image" content="https://site.ru/templates/default/images/600.jpg"/>
  11. <meta property="og:image:secure_url" content="https://site.ru/templates/default/images/600.jpg"/>
  12. <meta property="og:image:type" content="image/jpeg"/>
  13. <meta property="og:image:height" content="200"/>
  14. <meta property="og:image:width" content="200"/>
  15.  
Вставить в head, картинку бросить по адресу )).
Системный компонент Open Graph отключить.

Валидацию в Яндекс проходит без ошибок (если на странице нет других ошибок).
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.