当我喜欢我们的网站(www.potatopro.com)上的文章时,有Facebook和facebook分享按钮,错误的网站数据被提取。 要么您无法更改图片,要么在其他情况下Facebook取出导航而不是内容。
据我了解,我必须在我们的网站上实现facebook的开放图协议元标记。但是我如何为基于sharepoint的网站做到这一点?!请指教!
答案 0 :(得分:3)
您可以将webpart添加到您的网页正在使用的pagelayout。在webpart中,您添加一个函数,该函数在页面上查找标题,内容和图像,并将元标记写入页面正在使用的母版页。这是函数的一个例子......
protected override void Render(HtmlTextWriter writer)
{
if (SPContext.Current != null && SPContext.Current.ListItem != null)
{
SPListItem item = SPContext.Current.ListItem;
var title = item["Title"];
if (title != null)
{
writer.WriteBeginTag("meta");
writer.WriteAttribute("property", "og:title");
writer.WriteAttribute("content", title.ToString());
writer.WriteEndTag("meta");
}
var pageContent = item["PublishingPageContent"];
if (pageContent != null)
{
string strippedPageContent = Regex.Replace(pageContent.ToString(), @"<(.|\n)*?>", string.Empty);
writer.WriteBeginTag("meta");
writer.WriteAttribute("property", "og:description");
writer.WriteAttribute("content", strippedPageContent);
writer.WriteEndTag("meta");
}
var pageImage = item["PublishingPageImage"];
if (pageImage != null)
{
ImageFieldValue pageImageValue = pageImage as ImageFieldValue;
if (pageImageValue != null)
{
var url = pageImageValue.ImageUrl;
writer.WriteBeginTag("meta");
writer.WriteAttribute("property", "og:image");
writer.WriteAttribute("content", url);
writer.WriteEndTag("meta");
}
}
}
}