1

Seems there are two main approaches if I want to be able to filter my wiki pages using metadata term store inside enterprise wiki site collection.

First Approach. Tree View Approach is to do the following:-

  • Enable the “Metadata Navigation and Filtering” site feature inside my site collection.
  • Go to “Site Setting >> Tree View >> enable tree view”
  • Got to “Library settings >> Metadata Navigation Settings”, configure the fields to be displayed.
  • The result is that I will get all the current term store fields inside a tree as follow:-

    enter image description here

Second Approach. Managed Navigation Approach is to do the following:-

  • Go to Site Setting>> Navigation.
  • Chose Managed Navigation under the Global navigation,
  • Chose the wiki category , from the term store.
  • The result will be that I will get managed navigation at the top;

enter image description here

Now i am not sure which approach is the correct one to follow & what are the differences between the two approaches?

From my side I find the following differences:-

  • Using tree view is more user friendly and will allow having extra columns inside the tree, this can be controlled using " Metadata Navigation Settings" under the library settings.
  • While using the managed navigation , I can only chose to have one term set such as the default wiki category. And the look and feel is not very user friendly

Now as I mentioned before the idea is that I want the ability to click on a term and get all the wiki pages that have been tagged using this term. Although both solutions will not allow metadata filtering to be done out of the box, for example using tree view I have to deploy the following solution to enable this (link), otherwise clicking on any term inside the Tree view will just redirect to the home page.. while for the managed navigation I did not use this before..

public class CustomWikiPageBase : PublishingLayoutPage
{
    protected override void OnInit(EventArgs e)
    {
        if (!String.IsNullOrEmpty(Request.QueryString["TreeField"]) 
            && !String.IsNullOrEmpty(Request.QueryString["TreeValue"]))
        {
            Response.Redirect(String.Format("{0}?TreeField={1}&TreeValue={2}",
                SPContext.Current.ListItem.ParentList.DefaultViewUrl,
                Request.QueryString["TreeField"],
                Request.QueryString["TreeValue"]));
        }
        else if (!String.IsNullOrEmpty(Request.QueryString["TreeField"]))
        {
            Response.Redirect(String.Format("{0}?TreeField={1}",
                SPContext.Current.ListItem.ParentList.DefaultViewUrl,
                Request.QueryString["TreeField"]));
        }
        base.OnInit(e);
    }
}
1

John,

All of the examples I've found online tell you to use the Managed Navigation approach.

I found a video tutorial and step-by-step instructions that are quite similar.

Managed Metadata Navigation in SharePoint 2013 SharePoint 2013 – Navigation using Managed Metadata (Term Store)

  • 1
    That's is a noted limitation I'm afraid. "Limitation # 1 => 1:1 Relationship between Site Collection and Term Set" nikpatel.net/2014/06/09/… – jpollar Jun 25 '15 at 15:01
  • 1
    It would appear so as you can't have more than one term set per site navigation. Did it give you the desired results though? Any drawbacks? – jpollar Jun 25 '15 at 15:08
  • 1
    Correct. I also found a JavaScript solution you may want to consider. habaneroconsulting.com/insights/… – jpollar Jun 25 '15 at 15:30
  • 1
    It works similar to the link you posted. I didn't research it much, but it would be something more flexible to use with SharePoint online. – jpollar Jun 25 '15 at 17:01
  • 1
    John...check out this article. This looks like this might help. blogs.interfacett.com/… – jpollar Jun 26 '15 at 13:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.