【发布时间】:2019-01-15 14:29:00
【问题描述】:
我最近将 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: 根本不起作用。
数据在数据库中可用。
我想知道是否有什么东西会弄乱我的打字稿,但解析的打字稿完全显示在 Typoscript 对象浏览器中。
我怀疑在评估 twitter: 和 fb: 键时解析有问题,但我无法确定在代码中进行此评估的位置。文档也没有提供太多。
[编辑]:我忘了提到元数据不是按照它在打字稿中的顺序呈现的,而是以某种方式被打乱了,所以我也怀疑一个扩展会搞砸这个。
[更新]:在带有 docker 的本地开发环境(与生产网络服务器相同的设置)中,标签可以正常工作。
[更新 2]: 当使用 stdWrap 解析来自 Typoscript 的值时,罪魁祸首似乎在 EXT:frontend/Classes/Page/PageGenerator.php:PageGenerator::generateMetaTagHtml 的某个地方。我会继续在那里挖掘。
【问题讨论】:
标签: typo3 typoscript typo3-8.x