如何在 TYPO3 8 中正确设置 TYPO3 og, twitter: 和 fb:

How to set TYPO3 og, twitter: and fb: properly in TYPO3 8

我最近将一个 TYPO3 实例从 7 更新到 8(现在是 8.7.22,PHP 7.2)(显然是在 9.5 发布之前)并且我 运行 进入了一个以前工作的自我设置 og:twitter: 元标记存在问题。

客户需要这些用于 SEO 优化和 Twitter 改进的 Twitter 分享行为。

我们构建了这个:

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:descriptionog:site_nameog:type 元信息似乎有效,但 twitter:fb:那些根本不起作用。

数据库中有数据。

我想知道是否有什么东西可以搞砸我的打字错误,但解析的打字错误完全显示在打字对象浏览器中。

我怀疑在评估 twitter:fb: 键时解析有问题,但我无法确定在代码中进行此评估的位置。文档也没有提供太多信息。

[编辑]: 我忘了提到元数据不是按照它在打字稿中的顺序呈现的,而是以某种方式被打乱了,所以我也怀疑扩展到搞砸了。

[更新]: 在具有 docker 的本地开发环境中(与生产网络服务器相同的设置)标签正常工作。

[更新 2]: 当使用 stdWrap 解析 Typoscript 的值时,罪魁祸首似乎在 EXT:frontend/Classes/Page/PageGenerator.php:PageGenerator::generateMetaTagHtml 的某个地方。我会继续挖掘那里。

所以,事实证明,TYPO3在缓存rootline信息方面确实很好,但在清除数据方面却不行...

截断所有 cf_* 表解决了这个问题。显然,即使在安装工具中清除了整个缓存,这个缓存也没有正确刷新。