Как реализовать на сайте разметку Open Graph Есть решение
Заметил что на сайте (приложение сайт) , не путать с магазином, не выводится у страниц разметка. Зашел на сайт webasyst у них все ок, как ее реализовать, куда какой код вставить? И почему этого нет по умолчанию?
<!-- OG --> <meta property="og:url" content="" /> <meta property="og:title" content="" /> <meta property="og:description" content="" /> <meta property="og:type" content="" /> <meta property="og:image" content="" />
19 ответов
Сайт - Страницы - Выбрать страницу и наверху Настройки страницы - раздел Соцсети.
Это все прописал, но нет в коде сайта этого.
Там стоит установка "Использовать те же заголовки для соцсетей". Даже, если поменяем заголовки на произвольные. Разметка от этого разве появится на странице, созданной в приложении Сайт? Шаблон Дефолт 3.0.
Я бы в head.html приложения Сайт вставил вот такие строки
Уже хоть что-то будет вместо ничего.
В том то и дело, что я все прописал для соц сетей, т.е убрал галочку, чтобы они не были одинаковые, но в шаблоне видимо это не прописано и поэтому не выводится. Шаблон стоит "Сайт. Визитка", но даже не суть.
Вопрос, какой код для вставки в шаблон, чтобы на каждой странице выводилось, то что выше написал. Еще заметил, что код <link rel="canonical" href="{$canonical}"/> есть, а когда смотришь код на любой странице то нет его.
Есть ещё небольшой лайфхак. Заходишь в редактор страницы и в дополнительных параметрах пишешь следующее:
descr=твой текст
ttl=твой тайтл
Затем в шаблоне head.html Сайта вытаскиваешь это через
Или, если не критично использовать те же значения, что и в основных мета, то см. совет выше.
Только не забудь проверку на {if $page.ttl} ну и т.д., чтобы теги с пустым content не выводить.
Спасибо, попробую.
Но странно, что по умолчанию такое не работает и ТП ничего не говорит.
Еще совсем забыл среди ночи.
Для $page доступны следующие вещи.
Все эти вещи обрамляем красиво тегами в head.html Сайта
Для примера строка title с проверкой на отдельный og_title
Для видео будет так
Спасибо, днем попробую.
Я, прочитав вашу тему, заморочился для себя тоже такое сделать. У меня на сайте обычно страницы не используются, т.к. юзаю страницы магазина, где это работает из коробки, но ради морального удовлетворения запилил себе таки одну страницу. Всё вроде красивенько получилось.
В index.html head должен быть подключен так {include file="`$wa_active_theme_path`/head.html" inline}.
При таком коде падает сайт:
что прописать в content="???" - так как есть для главной "website" а для страниц "article"
Потому что {if} {else} {/if} требует закрывающей части. Нельзя открыть {if} и оставить просто так. Поэтому и падало.
Небольшой пример с контентом, чтобы просто навести на мысль.
Для страниц, где тип контента указан, будет выводиться то, что указано. В остальных случаях website.
В общем сделал вот так но есть пару моментов, просто не знаю переменные, которые подставить:
В общем завис над строчками:
как вывести тип?
Как вывести имя пробовал {$a.name} и {foreach $wa->apps() as $a}{$a.name}{if !$a@last}{/if}{/foreach}, но выводит, все категории блога, а мне надо 1 первую основную.
Кейворды конечно лишнее, но просто ради интереса поставил
Про блог и категории не уловил суть. Вроде речь о приложении Сайт и страницах его шла. Что с блогом не так? У блога свой head.html по идее есть. Туда всякое для него можно размещать. А в записях блога отдельно корректно настраиваются теги OG.
да блог немного лишний. Просто не могу понять откуда можно выдернуть название сайта. Которое прописано в "Сайт - Настройки - Название поселения" (Название используется в меню навигации $wa->apps этого сайта)
Есть код, как его вывесит?
Понял. Короче смотри. На самом деле это задается в двух местах.
Сайт - Дизайн - Настройки - Название поселения и ещё Сайт - Настройки - wa-apps меню - Настроить. Так вот это wa-apps меню является массивом с возможно несколькими элементами, причем, что самое интересное, во второй настройке название может не совпадать с первой настройкой. Из этого массива наверное и надо тянуть нужный элемент.
Код ниже выдернет из массива меню первый элемент и выведет его где надо.
Соответственно $a@last - последний, а !$a@last - все, кроме последнего.
Спасибо, на форуме удалось найти тут, то что искал.
Ну да. Можно и так. Условие по url'ам. Просто увидел в примере попытки !$a@last и подумал про него. У меня, например, приложение Сайт есть, но в массиве wa-apps его нет, т.к. меню настроено вручную на два элемента, когда / = магазин, а /blog/ = новости.