Сделать вывод Open Graph protocol у новости или статьи в Битриксе
Зачастую нужно использовать Open Graph protocol, чтобы репосты записи в facebook и другие соц.сети имели нужную картинку, заголовок, анонс и т.п. Чтобы просто добавить на страницу можно использовать код, вставленный в начале index.php:
$APPLICATION->AddHeadString('<meta property="og:type" content="website" />');
$APPLICATION->AddHeadString('<meta property="og:title" content="Название" />');
$APPLICATION->AddHeadString('<meta property="og:description" content="Описание" />');
$APPLICATION->AddHeadString('<meta property="og:image" content="http://путь к картинке" />');
Но вот, чтобы сделать это у элемента инфоблока автоматически, придется немного поработать с инфоблоком. Посмотрим на примере news.detail.
1. В директории шаблона создаем файл result_modifier.php с кодом, указывающим какие данные нам нужны, это нужно, чтобы данные закэшировались и их можно было использовать в component_epilog.php:
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
$this->__component->SetResultCacheKeys(array(
"NAME",
"PREVIEW_TEXT",
"PREVIEW_PICTURE",
"DETAIL_PICTURE"
));?>
Важно! Чтобы картинка стала подхватываться, нужно в настройках компонента, в "Источник данных" выбрать Картинку для анонса и Детальную картинку, смотря какая нужна.
2. Далее создаем второй файл с названием component_epilog.php и с кодом нужных полей стандарта Open Graph protocol:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$APPLICATION->AddHeadString('<meta property="og:type" content="website" />');
$APPLICATION->AddHeadString('<meta property="og:title" content="' . $arResult["NAME"] . '" />');
$APPLICATION->AddHeadString('<meta property="og:description" content="' . $arResult["PREVIEW_TEXT"] . '" />');
$APPLICATION->AddHeadString('<meta property="og:image" content="http://domen.ru'.$arResult["DETAIL_PICTURE"]["SRC"].'" />');
?>
3. Теперь можно все проверить в сервисе фесбука https://developers.facebook.com/tools/debug/sharing/ и тут отладчик https://developers.facebook.com/tools/debug/og/object/
Количество показов: 3541