如何在 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:description
、og:site_name
和 og:type
元信息似乎有效,但 twitter:
和 fb:
那些根本不起作用。
数据库中有数据。
我想知道是否有什么东西可以搞砸我的打字错误,但解析的打字错误完全显示在打字对象浏览器中。
我怀疑在评估 twitter:
和 fb:
键时解析有问题,但我无法确定在代码中进行此评估的位置。文档也没有提供太多信息。
[编辑]: 我忘了提到元数据不是按照它在打字稿中的顺序呈现的,而是以某种方式被打乱了,所以我也怀疑扩展到搞砸了。
[更新]: 在具有 docker 的本地开发环境中(与生产网络服务器相同的设置)标签正常工作。
[更新 2]: 当使用 stdWrap 解析 Typoscript 的值时,罪魁祸首似乎在 EXT:frontend/Classes/Page/PageGenerator.php:PageGenerator::generateMetaTagHtml
的某个地方。我会继续挖掘那里。
所以,事实证明,TYPO3在缓存rootline信息方面确实很好,但在清除数据方面却不行...
截断所有 cf_* 表解决了这个问题。显然,即使在安装工具中清除了整个缓存,这个缓存也没有正确刷新。
我最近将一个 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:description
、og:site_name
和 og:type
元信息似乎有效,但 twitter:
和 fb:
那些根本不起作用。
数据库中有数据。
我想知道是否有什么东西可以搞砸我的打字错误,但解析的打字错误完全显示在打字对象浏览器中。
我怀疑在评估 twitter:
和 fb:
键时解析有问题,但我无法确定在代码中进行此评估的位置。文档也没有提供太多信息。
[编辑]: 我忘了提到元数据不是按照它在打字稿中的顺序呈现的,而是以某种方式被打乱了,所以我也怀疑扩展到搞砸了。
[更新]: 在具有 docker 的本地开发环境中(与生产网络服务器相同的设置)标签正常工作。
[更新 2]: 当使用 stdWrap 解析 Typoscript 的值时,罪魁祸首似乎在 EXT:frontend/Classes/Page/PageGenerator.php:PageGenerator::generateMetaTagHtml
的某个地方。我会继续挖掘那里。
所以,事实证明,TYPO3在缓存rootline信息方面确实很好,但在清除数据方面却不行...
截断所有 cf_* 表解决了这个问题。显然,即使在安装工具中清除了整个缓存,这个缓存也没有正确刷新。