Редактор темы

Реклама
Реклама

Плагин вывода og:image на основе дополнительного поля

  • Автор темы Автор темы iroder
  • Дата начала Дата начала

iroder

Бывалый
Регистрация
7 Июн 2015
Сообщения
266
Рейтинг реакций
25
Баллы
28
Возраст
32
1/3
Автор темы
1613737772_2021-02-19_15-27-36.png

Разметка Open Graph уже реализована в движке DLE и работает правильно, но только до тех пор, пока вы используете вставку картинок в тело новости. Если в вашей публикации картинки выводятся через дополнительные поля - то метатег og:image предназначенный для вывода ссылки на изображение оказывается пустым. И при репостинге ссылок на вашу страницу сайты не отображается картинка с сайта. Для исправления этой проблемы подойдет плагин Своя картинка в og:image в полной новости

1613738291_2021-02-19_15-36-07.png

В данном случае нас интересует только og:image

og:image — здесь указываем, какую картинку нужно подтянуть к публикации при репосте. В атрибуте content указывается URL изображения. Обратите внимание! При использовании разметки изображение может даже не находиться в статье или на странице. Его можно разместить в любой директории сайта, а в теге og:image указать ссылку на него. При репосте соцсети проигнорируют картинки на странице, а подтянут указанное изображение из нужной директории.

Плагин позволяющий указать название свое дополнительного поля для использования в разметке og:image основан на примере с форума поддержки https://forum.dle-news.ru/topic/72594

Но вместо ручной правки исходником нами добавлена возможность указывать название своего поля через стандартный интерфейс админки сайта.

Перейдите в раздел Настройки скрипта -> Настройки системы -> Новости
в нем найдите пункт Указать название дополнительного поля картинки для og:images

1613738506_2021-02-19_15-39-51.png
 

Вложения

Автор темы
кто установит дайте знать пожалуйста, у меня в место постеров no_image.jpg выводит
 
TCSE

Вместо этого плагина в DLE 15.1 заявлена новая функция

14. Для дополнительный полей, имеющих тип "Изображение" или "Галерея изображений", добавлена новая опция: "Использовать изображение в разметке Open Graph". Тем самым вы можете напрямую указать из какого поля брать ссылку на изображение при формировании метатегов. Если явное указание отсутствует, то как и ранее изображение будет получено автоматически из всех полей. Если данную опцию имеют несколько полей, то изображение будет взято из первого, которое присутствует в новости и заполнено.

Источник: https://dle-news.ru/pressrelease/1853-datalife-engine-v151-press-release.html
 
Автор темы
Slavchik Это совсем другое.
а он прав оказываеться. я короче удалил модуль и сделал так.
в main в до </head> поставил

Код:
    <meta property="og:image" content="{THEME}/images/main.jpg">

это чтоб когда деляться главной страницой сайта своя картинка выходила.
потом зашел в доп поле постера и поменял все там на это

Снимок экрана 2022-08-21 120821.jpg
везьде где [xfvalue_poster] меняешь его на [xfvalue_image_url_poster]
и все норм.
 
Посмотреть вложение 28214

Разметка Open Graph уже реализована в движке DLE и работает правильно, но только до тех пор, пока вы используете вставку картинок в тело новости. Если в вашей публикации картинки выводятся через дополнительные поля - то метатег og:image предназначенный для вывода ссылки на изображение оказывается пустым. И при репостинге ссылок на вашу страницу сайты не отображается картинка с сайта. Для исправления этой проблемы подойдет плагин Своя картинка в og:image в полной новости

Посмотреть вложение 28215

В данном случае нас интересует только og:image

og:image — здесь указываем, какую картинку нужно подтянуть к публикации при репосте. В атрибуте content указывается URL изображения. Обратите внимание! При использовании разметки изображение может даже не находиться в статье или на странице. Его можно разместить в любой директории сайта, а в теге og:image указать ссылку на него. При репосте соцсети проигнорируют картинки на странице, а подтянут указанное изображение из нужной директории.

Плагин позволяющий указать название свое дополнительного поля для использования в разметке og:image основан на примере с форума поддержки https://forum.dle-news.ru/topic/72594

Но вместо ручной правки исходником нами добавлена возможность указывать название своего поля через стандартный интерфейс админки сайта.

Перейдите в раздел Настройки скрипта -> Настройки системы -> Новости
в нем найдите пункт Указать название дополнительного поля картинки для og:images

Посмотреть вложение 28216
Вообще нет такого пункта в настройках ))
622248f270d0d272d2ffb28cb6885b34.png


А, всё, нашёл. После установки модуля чекбоксы нужно включить.
Но всё равно ошибка модуля. DLE 15.1


Имя файла: engine/modules/show.full.php
Ошибка: Не удалось найти код:
if ( count($images) ) {
$social_tags['image'] = str_replace("/thumbs/","/",$images[0]);
$social_tags['image'] = str_replace("/medium/","/",$social_tags['image']);
}

В 15.1 код немного другой
PHP:
if ( count($images) ) {
            $social_tags['image'] = str_replace("/thumbs/","/",$images[0]);
            $social_tags['image'] = str_replace("/medium/","/",$social_tags['image']);
            $schema_images = $images;   
        }

и там схемаорг добавлена.
После добавления этого плагина эта строка же не будет уже работать ?
 
Последнее редактирование:
Сделал так:

Найти:

PHP:
if ( count($images) ) {
            $social_tags['image'] = str_replace("/thumbs/","/",$images[0]);
            $social_tags['image'] = str_replace("/medium/","/",$social_tags['image']);
            $schema_images = $images;   
        }

Заменить на:

PHP:
$xfieldsdata = xfieldsdataload( $row['xfields'] );
// если указано название доп.поля в переменной og_images_alter
if (isset($xfieldsdata['{$config["og_images_alter"]}'])) {
    $soctimage = explode('|', $xfieldsdata['{$config["og_images_alter"]}']);
    // если оно больше 1 - ищем его в папке загрузок
    if (count($soctimage) > 1) {
        $socimgarticle = $config['http_home_url'].'uploads/posts/'.$soctimage[1];
    }
    // иначе считаем пустым
    else {
        $socimgarticle = $config['http_home_url'].'uploads/posts/'.$soctimage[0];
    }
}
// иначе ищем первую картинку в теле новости
else {
    $socimgarticle = $images;
    // если картинок 0 - считаем пустым
    if (count($socimgarticle)) {
        $socimgarticle = str_replace("/thumbs/", "/", $images[0]);
        $socimgarticle = str_replace("/medium/", "/", $social_tags['image']);
    }
    // иначе $socimgarticle = {THEME}/dleimages/no_image.jpg
    else {
        $socimgarticle = $config['http_home_url']. 'templates/' .$config['skin'].'/dleimages/no_image.jpg';
    }
}
$social_tags['image'] = $socimgarticle;
$schema_images = $images;
 
Посмотреть вложение 28226
и какой ещё плагин или хак нужен для этого, когда всё есть уже в коробочном варианте? при создании доп поля выбираешь этот пункт и всё нормально выводится!
Таки не все модули проставляют в загружаемое изображение. Тот же алоха, он у меня основной, и проставляет только в текстовое поле. Так что ...
 
Таки не все модули проставляют в загружаемое изображение. Тот же алоха, он у меня основной, и проставляет только в текстовое поле. Так что ...
тогда fullstory metatags на помощь придёт. в полной новости вписываешь нужный код og:image и будет выводить вместо стандартной дле-шной.
 
Кто подскажет как поправить ?
DLE 15.2
Вывод постеров - [xfvalue_poster]

Выводится в разметку только если указать доп поле постера - загружаемое изображение.
Но на сайте выводится соответственно пустой постер.

Нужно поправить что-бы выводило в разметку - доп полем [xfvalue_poster]
 

Вложения

  • Screenshot.png
    Screenshot.png
    4,1 КБ · Просмотры: 29
[xfvalue_image_description_X]

Данный тег может использоваться только если дополнительное поле имеет тип "Изображение". Тег выводит только описание для загруженного изображения, где "х" это имя дополнительного поля.
 

Похожие темы Последние темы Популярные темы

Назад
Сверху