Remove a taxon from the associated content item
To remove the taxon from the content items, you need to perform the following:
- Use
TaxonomyManager, which is the manager class for taxonomies. - Use
ContentManager, which is the manager class for content.
The sample uses theContentManagerclass as an example, but you can use it for all content types, including dynamic content. - Query the category as a
HierarchicalTaxon. - Query the content items associated with the category.
- Iterate through the content items and remove the taxon.
Use the organizer’sRemoveTaxonmethod. To remove multiple taxons or taxa, you can use theRemoveTaxamethod instead. - Call the manager’s
SaveChangesmethod to persist the changes to the database.
Consider the complete code snippet:
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Telerik.Sitefinity.Modules.GenericContent;
using Telerik.Sitefinity.Taxonomies;
using Telerik.Sitefinity.Taxonomies.Model;
using Telerik.Sitefinity.Model;
namespace Telerik.Sitefinity.Documentation.CodeSnippets.DevGuide.SitefinityEssentials.Taxonomies.Tutorials
{
public partial class TaxonomiesTutorialsSnippets
{
public static void RemoveContentItemsForTaxon(string name)
{
var taxonomyManager = TaxonomyManager.GetManager();
var contentManager = ContentManager.GetManager();
//Get the taxon
var taxon = taxonomyManager.GetTaxa<HierarchicalTaxon>().FirstOrDefault(s => s.Title == name);
if (taxon == null) return;
//Get all content items associated with the category
var contentItems = contentManager.GetContent().Where(c => c.GetValue<IList<Guid>>("Category").Contains(taxon.Id));
//Loop through the content items and remove the Taxon
foreach (var contentItem in contentItems)
{
contentItem.Organizer.RemoveTaxa("Category", new[] { taxon.Id });
}
contentManager.SaveChanges();
}
}
}
NOTE: UrlNameCharsToReplaceand UrlNameReplaceStringare two constants that you will need to define as follows:
public const string UrlNameCharsToReplace = @"[^\w\-\!\$\'\(\)\=\@\d_]+";public const string UrlNameReplaceString = "-";
Want to learn more?
Enhance your Sitefinity skills by enrolling in free training sessions. Become Sitefinity certified through Progress Education Community to strengthen your professional credentials.
Get started with Integration Hub | Sitefinity Cloud
This free lesson teaches administrators, marketers, and other business professionals how to use Sitefinity Integration Hub to create automated workflows between Sitefinity and other business systems.
Web Security for Sitefinity Administrators
This free lesson teaches administrators the basics about protecting your Sitefinity instance and your sites from external threats. Configure HTTPS, SSL, allow lists for trusted sites, and cookie security, among others.
Foundations of Sitefinity ASP.NET Core Development
The free on-demand video course teaches developers how to use Sitefinity ASP.NET Core and take advantage of its decoupled architecture and modern development model.