如何使用Geta Sitemap在包含的文件夹中排除特定的子文件夹?

时间:2019-06-14 12:40:28

标签: episerver

如何从包含在文件夹中的站点地图中排除与特定模式匹配的子文件夹?

例如,我希望排除所有符合以下条件的子文件夹:/ Research / Content / Short-reports / * pptx /

虽然仍包括以下所有其他文件夹: / Research / Content / Short-reports /

Geta似乎忽略了我的通配符,并将其视为文字。

TIA

1 个答案:

答案 0 :(得分:0)

不幸的是,Geta只进行字符串匹配,而不会处理任何通配符/正则表达式。

Geta建议您实现自己的IContentFilter进行自定义过滤。

如果有问题的文件夹是CMS中的“内容文件夹”,则一个选项是在全局设置中创建ContentArea属性,以保存对要排除的所有文件夹的引用。然后,在IContentFilter实现的ShouldExcludeContent方法中,可以执行检查以查看内容是否是添加到全局设置的文件夹之一的后代。

public class MyCustomSitemapContentFilter : Geta.SEO.Sitemaps.Utils.ContentFilter
{
    public override bool ShouldExcludeContent(IContent content)
    {
        var baseEvaluation = base.ShouldExcludeContent(content);

        var shouldExclude = false;

        //shouldExclude = code to check if content is 
        //   is descendant of any of the folders referenced
        //   in global setting property

        return shouldExclude || baseEvaluation;
    }
}