Skip to main content

Umbraco 8 Metadata Snippet, keywords, meta title.

Umbraco 8 Metadata Snippet, keywords, meta title, meta description:

The following is a snippet that may help with generating metadata. I created this as a partial and added it to the Main Template.

If the metadata fields are not filled in on the backend by the editor, they are generated from the Page Name and the Name of the Website (applicationName).

----

In the example the backend meta fields are called:
"metaTitle"   (textstring)
"metaDescription"   (textstring)
"metaKeywords" (tags)

----

@inherits Umbraco.Web.Mvc.UmbracoViewPage
@{
    var applicationName = "My Website Name";
}
@if(Model.HasValue("metaTitle")){
    <title>@Model.Value("metaTitle")</title>

else
{
    if(Model.Id == Umbraco.ContentAtRoot().FirstOrDefault().Id)
    {
        <title>@applicationName</title>
    }
    else
    {
        <title>@Model.Name | @applicationName</title>
    }
}


@if(Model.HasValue("metaDescription")){
    <meta name="description" content="@Model.Value("metaDescription")">
}
else{
    <meta name="description" content="The @Model.Name page of the @applicationName website.">
}


@if(Model.HasValue("metaKeywords")){
    var keywords = "";
    foreach(var tag in Model.GetProperty("metaKeywords").Value<IEnumerable<string>>()){
        keywords += @tag + ", ";
    }
    keywords = keywords.Trim(", ");
    if(keywords != "")
    {
        <meta name="keywords" content="@keywords">
    }
    else
    {
        <meta name="keywords" content="@applicationName, @Model.Name">
    }
}
else
{
    <meta name="keywords" content="@applicationName, @Model.Name">
}


Comments

Popular posts from this blog

Umbraco 7 - C# Razor - Passing a parameter variable from a Template to a Partial View.

Passing a parameter variable from a Template to a Partial View Example - Passing a Page Id to a Partial View.
In the example below we are passing 3 page Ids (1090. 1091, 1092) to a partial view.  The Partial View will display the details for each of these nodes on a home page.  See final output below.


1) In your Template:
@Html.Partial("HomePageLinksToLandingPages", new ViewDataDictionary{{ "pageId", 1090}}) @Html.Partial("HomePageLinksToLandingPages", new ViewDataDictionary{{ "pageId", 1091}}) @Html.Partial("HomePageLinksToLandingPages", new ViewDataDictionary{{ "pageId", 1092}})

2) The Partial View:
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage @{ var thisPageId = 1090; var stringPage = @ViewData["pageId"]; thisPageId = Convert.ToInt32(stringPage); } <div class="col-md-4"> <article class="common-blog-pos…

Umbraco 7 Hide a page from Navigation or Sub Navigation with umbracoNaviHide using Razor in a template or partial view

How to Allow the user to Hide a Page from Navigation in Umbraco 7. By using a tick box:
This example shows hide the Search Results page from the main navigation in umbraco 7.


1)  In your Document Type add a property called "umbracoNaviHide", it must be called "umbracoNaviHide"

The property should be a tick box, so it should be a "True/False "



2) In your Navigation, add the highlighted code to your for each loop that writes out the navigation:

  @foreach(var p in homePage.Children().Where("visible"))
                        {
                            write out navigation

3) Now when the user ticks Hide from Nav in the backend, the page will not show in the navigation:


Umbraco 7 Get Media images by ID when using the Multi Media Picker to display a Gallery

Umbraco 7 Get Media images by ID when using the Multi Media Picker

This is usefull when creating a gallery of images.

1) In your Doctype add the Multiple Media Picker

2) Umbraco 7 Razor code snippet partial:


@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@helper RemoveExtensions(string stringIn)
{
 var thisTitle = stringIn;
                                        thisTitle = thisTitle.Replace(".jpg", "");
                                        thisTitle = thisTitle.Replace(".png", "");
                                        thisTitle = thisTitle.Replace(".jpeg", "");
                                        thisTitle = thisTitle.Replace(".gif", "");
                                        thisTitle = thisTitle.Replace(".bmp", "");
                                        thisTitle = thisTitle.Replace("-", " ");
                                        thisTitle = thisT…