0

我正在尝试og:description从显示页面的内容中动态生成 Facebook 所需的标签。如果没有给出元描述,我的想法是使用页面的内容文本。我试过这个脚本:

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="|" />| 
  }
} 

问题是这个标签甚至没有出现在页面上。那么有什么问题呢?

4

3 回答 3

0

尽量避免使用渲染tt_content元素作为元标记,因为它们是 RTE 字段,所以这可能会很棘手,因此,即使使用 stripHtml,也有可能破坏您的 HTML 代码。

相反,最好使用属性Meta > Description字段来完成这项任务,这样更安全。Page请注意,如果您将在页面上使用多个文本类型的 tt_content,您的代码将创建相同数量的<meta />标签。

顺便说一句:您的代码段相当正确 - 它可以正常工作,也许您在某些页面上有一些缓存问题?

于 2012-07-28T19:53:28.967 回答
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="|" />
} 

(未经测试!)

于 2012-07-30T11:21:10.543 回答
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:描述:

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
于 2012-08-10T09:42:27.703 回答