これは、DNNのサイトマッププロバイダで行うことができます。私のオープンソースDNNSimpleArticleモジュールは、この例があります:
https://github.com/ChrisHammond/dnnsimplearticle/blob/6d5d2c5bb074dd2bdede40fac4eb3c78408ab884/Providers/Sitemap/Sitemap.cs
public override List<SitemapUrl> GetUrls(int portalId, PortalSettings ps, string version)
{
var listOfUrls = new List<SitemapUrl>();
foreach (Article ai in ArticleController.GetAllArticles(portalId))
{
var pageUrl = new SitemapUrl
{
Url = ArticleController.GetArticleLink(ai.TabID, ai.ArticleId),
Priority = (float)0.5,
LastModified = ai.LastModifiedOnDate,
ChangeFrequency = SitemapChangeFrequency.Daily
};
listOfUrls.Add(pageUrl);
}
return listOfUrls;
}
次に、あなたは.DNNが
https://github.com/ChrisHammond/dnnsimplearticle/blob/6d5d2c5bb074dd2bdede40fac4eb3c78408ab884/dnnsimplearticle.dnn
<component type="Config">
<config>
<configFile>web.config</configFile>
<install>
<configuration>
<nodes>
<node path="/configuration/dotnetnuke/sitemap/providers" action="update" key="name" collision="overwrite">
<add name="DNNSimpleArticleSiteMapProvider" type="Christoc.Modules.dnnsimplearticle.Providers.Sitemap.Sitemap, DNNSimpleArticle" providerPath="~\DesktopModules\dnnsimplearticle\Providers\Sitemap\" />
</node>
</nodes>
</configuration>
</install>
<uninstall>
<configuration>
<nodes />
</configuration>
</uninstall>
</config>
</component>
を提出して、あなたがそれを行うことができ、ことを登録する必要があります
ありがとうございます。私はそれを試します:) –
こんにちはクリスハモンド。あなたの提案としてcustom_sitemapを追加し、新しいsitemapProviderをweb.configに追加しました。しかし、custom_sitemapは機能しません。私はcustom_sitemapにデバッグできません。何か不足していませんか? –
こんにちは、私は答えを見つけました。/portal/0_systemのsitemap.xmlを削除してください。カスタムサイトマップの作業が正しい:) –