TYPO3中ext:news无图片新闻如何设置og:image默认fallback图?
解决TYPO3中ext:news的OG/Twitter卡片默认Fallback图问题(兼容cs_seo)
针对你提到的环境(TYPO3 v7.16、cs_seo 2.3.3、news 6.3.0),我分两种场景给你具体解决方案:
一、关闭cs_seo时添加默认Fallback图
ext:news的元数据由TypoScript控制,我们可以直接修改它的meta标签配置,为OG和Twitter卡片添加图片 fallback 逻辑:
- 先在TypoScript常量里定义默认图路径(方便后续维护):
site.defaultFallbackImage = fileadmin/images/default-og-image.jpg
- 覆盖ext:news的OG图片meta配置,添加fallback规则:
plugin.tx_news.settings.metaTags.og.image = TEXT plugin.tx_news.settings.metaTags.og.image { # 优先取当前新闻的第一张图片,无图时使用默认图 data = file:current:publicUrl // {$site.defaultFallbackImage} wrap = <meta property="og:image" content="|" /> }
- 为Twitter卡片做同样配置:
plugin.tx_news.settings.metaTags.twitter.image = TEXT plugin.tx_news.settings.metaTags.twitter.image { data = file:current:publicUrl // {$site.defaultFallbackImage} wrap = <meta name="twitter:image" content="|" /> }
配置完成后,无图片的新闻会自动使用你定义的默认图生成元数据。
二、开启cs_seo时的兼容方案
由于cs_seo会接管全站元数据生成,需要在它的配置里优先读取ext:news的图片,同时保留fallback逻辑:
- 同样先定义默认图常量(和上面一致)。
- 修改cs_seo的OG图片配置,动态读取新闻图片:
tx_cseo.meta.og_image = TEXT tx_cseo.meta.og_image { # 判断当前是否为新闻详情页,读取对应新闻的第一张图片,无图则用默认图 data = GP:tx_news_pi1|news > dataWrap = DB:tx_news_domain_model_news:{field:uid}:fal_media.0.publicUrl // {$site.defaultFallbackImage} wrap = <meta property="og:image" content="|" /> }
- Twitter卡片的配置逻辑一致:
tx_cseo.meta.twitter_image = TEXT tx_cseo.meta.twitter_image { data = GP:tx_news_pi1|news > dataWrap = DB:tx_news_domain_model_news:{field:uid}:fal_media.0.publicUrl // {$site.defaultFallbackImage} wrap = <meta name="twitter:image" content="|" /> }
另外你也可以先检查cs_seo的后台配置,部分版本会提供“OG/Twitter默认图”的直接设置项,同时可能有“内容优先”的开关——开启后cs_seo会自动优先读取当前新闻的图片,再 fallback 到默认图。
注意:TYPO3 v7属于旧版本,配置语法需严格对应版本,配置后记得清除TYPO3缓存再测试。
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

