0

使用 dnn 多语言 9.1.1,我需要在所有页面的标题中插入 hreflang 元数据。

<link rel="alternate" hreflang="it" href="http://www.acme.com/it/" title="Italian">
<link rel="alternate" hreflang="en" href="http://www.acme.com/en/" title="English">
<link rel="alternate" hreflang="de" href="http://www.acme.com/de/" title="German">

我找到了使用以下方法获取 CurrentUrl 的方法:

DotNetNuke.Entities.Tabs.TabController.CurrentPage.FullUrl

我发现在 SitemapBuilder.cs 中有一些实现备用 hreflang 的注释代码:

private void AddURL(SitemapUrl sitemapUrl, XmlWriter writer)
    {
        writer.WriteStartElement("url");
        writer.WriteElementString("loc", sitemapUrl.Url);
        writer.WriteElementString("lastmod", sitemapUrl.LastModified.ToString("yyyy-MM-dd"));
        writer.WriteElementString("changefreq", sitemapUrl.ChangeFrequency.ToString().ToLower());
        writer.WriteElementString("priority", sitemapUrl.Priority.ToString("F01", CultureInfo.InvariantCulture));

        //if (sitemapUrl.AlternateUrls != null)
        //{
        //    foreach (AlternateUrl alternate in sitemapUrl.AlternateUrls)
        //    {
        //        writer.WriteStartElement("link", "http://www.w3.org/1999/xhtml");
        //        writer.WriteAttributeString("rel", "alternate");
        //        writer.WriteAttributeString("hreflang", alternate.Language);
        //        writer.WriteAttributeString("href", alternate.Url);
        //        writer.WriteEndElement();
        //    }
        //}
        writer.WriteEndElement();
    }

如何获取当前页面的所有备用 URL?

4

0 回答 0