Как то раз мне поступила задача из отдела маркетинга "сделать так, что бы при добавлении новостей в соцсети автоматически подгружалось необходимое изображение, заголовок и описание. Что бы не приходилось каждый раз выбирать картинку вручную". Для опытных профи это конечно простенькая задача, но для меня на тот момент это была головоломка.
Для решения такой задачи существует . Про особенности его работы в каждой отдельной соцсети писать не буду, эту инфу можно погуглить.
Суть в том, что нам необходимо добавить в тег <head></head> дополнительные мета-теги, которые будут указывать соцсетям какую именно картинку, заголовок и описание цеплять для показа.
Для выполнения задачи нам нужны следующие мета-теги:
Решение
В качестве примера возьмем шаблон компонента news.detail. В папку шаблона (к примеру .default) добавляем файл result_modifier.php со следующим кодом:
далее создаем в этой же папке файл component_epilog.php с кодом
В данном примере для картинки анонса необходимо дополнительно указать поле:
Что бы мета-теги появились в исходном коде, в шаблоне сайта должна присутствовать функция $APPLICATION->ShowHeadStrings()
Результат:
UDP.
Просьба исправлять тег <meta> сомостоятельно, так как редактор отрывает букву "a" и получается <met a>. Иначе можете потерять массу времени при копировании кода из данного поста.
Для решения такой задачи существует . Про особенности его работы в каждой отдельной соцсети писать не буду, эту инфу можно погуглить.
Суть в том, что нам необходимо добавить в тег <head></head> дополнительные мета-теги, которые будут указывать соцсетям какую именно картинку, заголовок и описание цеплять для показа.
Для выполнения задачи нам нужны следующие мета-теги:
<met a property="og:title" content="Заголовок новости" /> <met a property="og:description" content="Текст анонса" /> <met a property="og:image" content="Путь к изображению анонса" /> |
Решение
В качестве примера возьмем шаблон компонента news.detail. В папку шаблона (к примеру .default) добавляем файл result_modifier.php со следующим кодом:
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
//Кэшируем необходимые нам ключи $arResult что бы можно было их использовать в component_epilog.php
$this->__component->SetResultCacheKeys(array(
"NAME",
"PREVIEW_TEXT",
"PREVIEW_PICTURE"
));?> |
далее создаем в этой же папке файл component_epilog.php с кодом
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$APPLICATION->AddHeadString('<met a property="og:title" content="' . $arResult["NAME"] . '" />');
$APPLICATION->AddHeadString('<met a property="og:description" content="' . $arResult["PREVIEW_TEXT"] . '" />');
$APPLICATION->AddHeadString('<met a property="og:image" content="' . $arResult["PREVIEW_PICTURE"]["SRC"] . '" />');
?> |
Что бы мета-теги появились в исходном коде, в шаблоне сайта должна присутствовать функция $APPLICATION->ShowHeadStrings()
Результат:
UDP.
Просьба исправлять тег <meta> сомостоятельно, так как редактор отрывает букву "a" и получается <met a>. Иначе можете потерять массу времени при копировании кода из данного поста.