Я недавно обновил экземпляр TYPO3 с 7 до 8 (сейчас 8.7.22, PHP 7.2) (очевидно, это было до выпуска 9.5), и я столкнулся с проблемой с ранее работающим самостоятельным набором og:
и twitter:
метатеги.
Клиенту это необходимо для оптимизации SEO, а в Твиттере улучшено поведение при обмене твиттерами.
Мы построили это:
page.meta {
description.data = levelfield:-1, description, slide
keywords.data = levelfield:-1, keywords, slide
bitly-verification =
og:site_name =
og:description.data = levelfield:-1, description, slide
og:description.attribute = property
og:type = website
og:type.attribute = property
og:locale.attribute = property
og:site_name.attribute = property
X-UA-Compatible = IE=edge
twitter:card.data = levelfield:-1, tx_metadata_twitter_card, slide
twitter:card.attribute = property
twitter:site.data = levelfield:-1, tx_metadata_twitter_site, slide
twitter:site.attribute = property
twitter:creator.data = levelfield:-1, tx_metadata_twitter_creator, slide
twitter:creator.attribute = property
twitter:account_id.data = levelfield:-1, tx_metadata_twitter_account_id, slide
twitter:account_id.attribute = property
fb:admins.data = levelfield:-1, tx_metadata_facebook_admin, slide
fb:admins.attribute = property
viewport = width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no
author >
}
И добавил поля к $TYPO3_CONF_VARS['FE']['addRootlineFields']
(который в соответствии с модулем конфигурации все еще работает отлично).
Проблема в том, что, по-видимому, работают только метаинформация og:description
, og:site_name
и og:type
, но twitter:
и fb:
не работают вообще.
Данные доступны в базе данных.
Мне было интересно, может ли что-нибудь испортить мой опечаток, но разобранный опечатка полностью отображается в браузере объектов Typoscript.
Я подозреваю, что что-то не так в разборе при оценке ключей twitter:
и fb:
, но я не могу точно определить, где эта оценка выполняется в коде. Документация тоже мало что дает.
[EDIT]: Я забыл упомянуть, что метаданные отображаются не в том порядке, в котором они находятся в опечатке, а как-то зашифрованы, поэтому я также подозревал расширение, чтобы это испортить.
[ОБНОВЛЕНИЕ]: В локальной среде разработки с докером (та же настройка, что и на рабочем веб-сервере) теги работают нормально.
[ОБНОВЛЕНИЕ 2]: Похоже, виновник находится где-то в EXT:frontend/Classes/Page/PageGenerator.php:PageGenerator::generateMetaTagHtml
при разрешении значений из Typoscript с использованием stdWrap. Я продолжу копать там.