gpt4 book ai didi

seo - 在 MVC 中为 Umbraco 中的 SEO 呈现 View

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:48:13 27 4
gpt4 key购买 nike

我正在尝试在 umbraco cms 中呈现 seo 标签的 View 。但是我不确定如何完成。有没有我可以查阅的资源?

最佳答案

SEO 和社交媒体的标签可以结合使用,因为它们共享一些相同的信息。

在我的 umbraco 安装中,我将以下属性添加到网站根节点、页面节点和成员节点:

在顶层节点上:

  • 站点名称 - 文本框
  • siteDescription - textarea
  • siteLocale - 文本框(即 nb_NO)
  • facebookPageUrl- 文本框
  • facebookAppId - 文本框
  • twitterUserName - 文本框
  • siteLogo - 媒体选择器

在页面上

  • pageTitle - 文本框
  • pageSnippet - 包含 160 个字符的关于页面内容的文本框
  • 作者 - 成员选择器

关于成员

  • facebookProfilePage - 文本框
  • twitterUserName - 文本框
  • memberProfileUrl - 文本框

然后我使用以下代码在所有页面上呈现 head 元标记:

    @inherits Umbraco.Web.Macros.PartialViewMacroPage
@{


// SITE INFORMATION
string site_locale = "en_US";
if (Model.Content.AncestorOrSelf(1).HasProperty("siteLocale") && (Model.Content.GetPropertyValue<string>("siteLocale") != ""))
{ site_locale = Model.Content.GetPropertyValue<string>("siteLocale"); };

// Check if root node has defined site name, otherwise use domain name.
string domain = System.Web.HttpContext.Current.Request.Url.Scheme + "://" + System.Web.HttpContext.Current.Request.Url.Authority;
string site_name = Model.Content.AncestorOrSelf(1).HasProperty("siteName") ? Model.Content.AncestorOrSelf(1).GetPropertyValue("siteName").ToString() : HttpContext.Current.Request.Url.Host.ToString();

// Check if site description exist, and default text if not.
string site_description = Model.Content.AncestorOrSelf(1).HasProperty("siteDescription") ? Model.Content.AncestorOrSelf(1).GetPropertyValue("siteDescription").ToString() : "The website " + HttpContext.Current.Request.Url.Host.ToString();
string site_logo_url = "";
string site_logo_height = "";
string site_logo_width = "";

if (Model.Content.AncestorOrSelf(1).HasProperty("siteLogo") && (Model.Content.AncestorOrSelf(1).GetPropertyValue<int>("siteLogo") != 0))
{
var logo = Umbraco.TypedMedia(Model.Content.AncestorOrSelf(1).GetPropertyValue("siteLogo").ToString());
site_logo_url = domain + logo.Url;
site_logo_height = logo.GetPropertyValue<string>("umbracoHeight");
site_logo_width = logo.GetPropertyValue<string>("umbracoWidth");
}


string site_fb_app_id = Model.Content.AncestorOrSelf(1).GetPropertyValue("facebookAppId").ToString();
string site_fb_page_url = Model.Content.AncestorOrSelf(1).GetPropertyValue("facebookPageUrl").ToString();
string site_twitter_username = Model.Content.AncestorOrSelf(1).GetPropertyValue("twitterUserName").ToString();

// PAGE INFORMATION
// Use page title if defined, otherwise Model.Content.Name
string page_url = Model.Content.Url;
string page_title = Model.Content.HasProperty("pageTitle") ? Model.Content.GetPropertyValue("pageTitle").ToString() : Model.Content.Name.ToString();
DateTime page_created_date = Model.Content.CreateDate;
DateTime page_updated_date = Model.Content.UpdateDate;

string page_description = Model.Content.HasProperty("pageSnippet") ? Model.Content.GetPropertyValue("pageSnippet").ToString() : "";

// AUTHOR INFORMATION
// Check for information about the author of this page
bool hasAuthorInfo = false;
if (Model.Content.HasProperty("author") && (Model.Content.GetPropertyValue("author").ToString() != ""))
{
hasAuthorInfo = true;
}
string author_name = "";
string author_facebook_page = "";
string author_twitter_username = "";
string author_member_profile_url = "";
if (hasAuthorInfo)
{
var author = Members.GetById((int)Model.Content.GetPropertyValue("author"));
author_name = author.Name;
author_facebook_page = author.GetPropertyValue("facebookProfilePage").ToString();
author_twitter_username = author.GetPropertyValue("twitterUserName").ToString();
author_member_profile_url = author.GetPropertyValue("memberProfileUrl").ToString();
}

// FEATURED IMAGE
// Check if there is a featured image for this page
bool hasFeaturedImage = false;
string page_featuredimage_url = "";

if (Model.Content.HasProperty("featuredImage") && (Model.Content.GetPropertyValue<int>("featuredImage") != 0))
{
hasFeaturedImage = true;
}

if (hasFeaturedImage)
{
var image = Umbraco.TypedMedia(Model.Content.GetPropertyValue("featuredImage").ToString());
page_featuredimage_url = domain + image.GetCropUrl("1200x630"); // Preferred size by Facebook
}
}
<meta name="description" content="@page_description" />
<meta property="og:title" content="@page_title" />
<meta property="og:site_name" content="@site_name" />
<meta property="og:url" content="@page_url" />
<meta property="og:description" content="@page_description" />
<meta property="og:image" content="@page_featuredimage_url" />
<meta property="fb:app_id" content="@site_fb_app_id" />
<meta property="og:type" content="article" />
<meta property="og:locale" content="nb_NO" />
<meta property="article:author" content="@author_facebook_page" />
<meta property="article:publisher" content="@site_fb_page_url" />
<meta name="twitter:title" content="@page_title" />
<meta name="twitter:description" content="@page_description" />
<meta name="twitter:image:src" content="@page_featuredimage_url" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@site_twitter_username" />
<meta name="twitter:creator" content="@author_twitter_username" />

<script type="application/ld+json">
{
"@@context": "http://schema.org",
"@@type": "NewsArticle",
"mainEntityOfPage":{
"@@type":"WebPage",
"@@id":"@page_url"
},
"headline": "@page_title",
"image": {
"@@type": "ImageObject",
"url": "@page_featuredimage_url",
"height": 630,
"width": 1200
},
"datePublished": "@page_created_date.ToString("o")",
"dateModified": "@page_updated_date.ToString("o")",
"author": {
"@@type": "Person",
"name": "@author_name"
},
"publisher": {
"@@type": "Organization",
"name": "@site_name",
"logo": {
"@@type": "ImageObject",
"url": "@site_logo_url",
"width": "@site_logo_width",
"height": "@site_logo_height"
}
},
"description": "@page_description"
}
</script>

关于seo - 在 MVC 中为 Umbraco 中的 SEO 呈现 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39913062/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com