動的な sitemap.xml ファイルの生成を支援する ASP.NET HttpHandler を提供します。
Umbraco CMS コンテンツからのサイトマップの構築をサポートする、Sitemapify に対する Umbraco 固有の拡張機能もあります。詳細については、Sitemapify.Umbraco を参照してください。
Install-Package Sitemapify
インストール プロセスでは、 web.config ファイルが更新され、 sitemap.xml
へのリクエストを処理するための httphandler が含まれているはずです。ファイルは次のようになります。
< configuration > < system .webServer> < handlers > < add name = " Sitemapify " path = " sitemap.xml " verb = " GET " type = " Sitemapify.SitemapifyHttpHandler, Sitemapify " /> handlers > system .webServer> configuration >
サイトマップ ハンドラーは、 Sitemapify.Configure
静的構成クラスを介して基本構成を変更することでカスタマイズできます。
Sitemapify . Configure ( c => c
. UsingContentProvider ( new YourContentProvider ( ) )
. UsingCacheProvider ( new YourCacheProvider ( ) )
. UsingDocumentBuilder ( new YourDocumentBuilder ( ) )
) ;
Sitemapify は、サイトマップ生成の要素を担当するプロバイダーに分割されています。
ISitemapifyContentProvider
)コンテンツ プロバイダーの実装は、サイトマップ内に出力するノードを表すSitemapUrl
オブジェクトのコレクションを Sitemapify に提供します。
public interface ISitemapContentProvider
{
IEnumerable < SitemapUrl > GetSitemapUrls ( ) ;
bool Cacheable { get ; }
DateTime CacheUntil { get ; }
}
ISitemapifyCacheProvider
)キャッシュ プロバイダーを実装すると、ブラウザーへのサイトマップの配信を最適化するために使用されるキャッシュ メカニズムをカスタマイズできます。サイトマップ ドキュメントが生成されると、このインターフェイスの設定された実装を通じてキャッシュされます。
public interface ISitemapCacheProvider
{
void Add ( XDocument sitemapContent , DateTimeOffset ? expires ) ;
bool IsCached { get ; }
XDocument Get ( ) ;
void Remove ( ) ;
}
ISitemapDocumentBuilder
) ISitemapDocumentBuilder
が提供する実装により、サイトマップ ドキュメント自体を完全にカスタマイズできます。デフォルトの実装では、公式の sitemap.xsd に基づいて完全に準拠したサイトマップ ドキュメントが生成されます。
public interface ISitemapDocumentBuilder
{
XDocument BuildSitemapXmlDocument ( IEnumerable < SitemapUrl > sitemapUrls ) ;
}
このバージョンの Sitemapify.Umbraco は、Umbraco 8.1 以降をサポートします。 Umbraco v7.* のサポートについては、バージョン 0.5.2 を参照してください。
まず、Umbraco 拡張機能をインストールします。
Install-Package Sitemapify.Umbraco
Sitemapify.Umbraco をインストールしたら、利用可能な「Umbraco Content Provider」を使用して sitemap.xml を形成するサイトマップ URL を生成するように Sitemapify を構成するコンポーネントを作成できます。
public class SitemapifyComponent : IComponent
{
public void Initialize ( )
{
Configure . With ( config => config . UsingContentProvider ( new SitemapifyUmbracoContentProvider ( ) ) ) ;
}
public void Terminate ( ) { }
}
コンポーネントを登録するには、UserComposer を作成する必要もあります。
public class SitemapifyComposer : IUserComposer
{
public void Compose ( Composition composition )
{
composition . Components ( ) . Append < SitemapifyComponent > ( ) ;
}
}
デフォルトでは、Umbraco コンテンツ プロバイダーは特定の名前を持つコンテンツ ノード プロパティを検索して、生成されたサイトマップ ファイルに特定のノードを含めるべきかどうかを決定します。これらのプロパティ名は次のとおりです。
umbracoNaviHide
- このノードが含まれるかどうかを決定する True/False (デフォルト: false)sitemapifyExcludeChildren
- このノードの下にあるすべての子ノードを無視するかどうかを決定する True/False (デフォルト: false)これらのプロパティ エイリアスを変更したい場合は、アプリケーション設定を通じてオーバーライドできます。
< appSettings > < add key = " Sitemapify.Umbraco:ExcludedFromSitemapPropertyAlias " value = " newPropertyAlias " /> < add key = " Sitemapify.Umbraco:ExcludedChildrenFromSitemapPropertyAlias " value = " anotherPropertyAlias " /> appSettings >