我正在尝试动态地从所显示页面的内容生成Facebook所需的og:description
标记。我的想法是,如果没有给出元描述,则使用页面的内容文本。我试过这个剧本:
page.headerData.838 = CONTENT
page.headerData.838 {
table=tt_content
select {
where = (CType = "text")
}
renderObj=TEXT
renderObj{
field=bodytext
stdWrap.stripHtml=1
noTrimWrap =|<meta property="og:description" content="|" />|
}
}
问题是该标签甚至没有出现在页面上。那捕获的是什么?
答案 0 :(得分:0)
尽量避免使用渲染tt_content
元素作为元标记,因为它们是RTE字段可能会很棘手,因此,即使使用stripHtml,也有可能破坏HTML代码。
相反,最好使用Meta > Description
Page
属性字段来完成此任务,这样更安全。请注意,如果您在页面上使用多个带文字类型的tt_content,您的代码将创建相同数量的<meta />
代码。
答案 1 :(得分:0)
也许你可以只渲染中间列的内容,剥离HTML并将其包装成og:description?我猜你的描述有最大长度。
page.headerData.838 < styles.content.get
page.headerData.838.stdWrap {
stripHtml = 1
crop = 180 | ... | 1
wrap = <meta property="og:description" content="|" />
}
(未经测试!)
答案 2 :(得分:0)
试试这个......
默认描述:
page.meta{
description.field = description
}
默认描述为空时的说明:
page.meta.description.ifEmpty.stdWrap.cObject = CONTENT
page.meta.description.ifEmpty.stdWrap.cObject {
table= tt_content
select {
selectFields = bodytext
}
renderObj =COA
renderObj {
10=TEXT
10 {
field = bodytext
stripHtml=1
crop = 300 | ... | 1
}
}
}
og:description:
temp.OpenGraphDescription = COA
temp.OpenGraphDescription{
10=CONTENT
10.table= tt_content
10.select {
selectFields = bodytext
}
10.renderObj =COA
10.renderObj {
10=TEXT
10 {
field = bodytext
stripHtml=1
crop = 300 | ... | 1
}
}
wrap = <meta property="og:description" content="|" />
}
page.headerData.55 < temp.OpenGraphDescription