Sitecore.NET 6.4.1 で構築された銀行の既存の Web サイトに取り組んでおり、エイリアスに関するいくつかの問題に遭遇しています。彼らはエイリアスを使用して、銀行員の個人ページによりわかりやすい URL を設定します。例: www.domain.com/bankername は、www.domain.com/About/People/Banker-ID に解決されます。私が抱えている問題は、実際のページにリンクするエイリアス ページがセクション内のすべてのメタ データを継承していないことです。したがって、個々の銀行家 (つまり、タイトルの銀行家名) のパーソナライズされたメタ タグではなく、すべてのサイト全体の既定のメタ タグを取得しています。メタ データは実際の銀行員のページに設定されており、www.domain.com/About/People/Banker-ID にアクセスすると正しく機能します。
リンクされたページのページ コンテンツに加えて、メタ データをエイリアスに継承させる方法はありますか?
public List<string> getmetaDetails()
{
List<string> metaDetails = new List<string>();
string metaTitle = String.Empty;
string metaDesc = String.Empty;
string metaKeyword = String.Empty;
try
{
// get root home item
Sitecore.Data.Items.Item homeItem = Sitecore.Context.Database.GetItem("/sitecore/content/Home");
Sitecore.Data.Items.Item Item = homeItem;
// get Page array by url
string pageUrl = Sitecore.Web.WebUtil.GetRawUrl().TrimStart('/');
string[] pageArr = pageUrl.Split('/');
//Removes '?...' after the actual path.
for(int i=0; i<pageArr.Length; i++)
if (pageArr[i].Contains("?")) pageArr[i] = pageArr[i].Substring(0, pageArr[i].LastIndexOf('?'));
if (pageArr[0] == "Advice")
{
Sitecore.Data.Items.Item AdviceItem = Sitecore.Context.Database.GetItem("/sitecore/content/Home/Advice");
if (AdviceItem != null)
{
metaTitle = FieldRenderer.Render(AdviceItem, "Meta Title");
metaDesc = FieldRenderer.Render(AdviceItem, "Meta Description");
metaKeyword = FieldRenderer.Render(AdviceItem, "Meta Keywords");
}
if (pageArr.Length > 1)
{
if(!String.IsNullOrEmpty(pageArr[1]))
{
Feeds feed = new Feeds();
List<FeedItem> adviceFeed = new List<FeedItem>();
string sql = "SELECT * FROM `web_feeds` WHERE url='" + pageArr[1] + "'";
adviceFeed = feed.getFeedFromDB(sql);
if(adviceFeed.Count >0)
{
metaTitle = adviceFeed[0].title;
metaDesc = adviceFeed[0].description;
metaKeyword +=","+ adviceFeed[0].tag;
}
}
}
}
else
{
// loop threw page array to find the item
foreach (string page in pageArr)
{
Item = getCurrentHomeItem(page, Item);
if (Item != null)
{
metaTitle = FieldRenderer.Render(Item, "Meta Title");
metaDesc = FieldRenderer.Render(Item, "Meta Description");
metaKeyword = FieldRenderer.Render(Item, "Meta Keywords");
}
}
}
if (String.IsNullOrEmpty(metaTitle)) metaTitle = FieldRenderer.Render(homeItem, "Meta Title");
if (String.IsNullOrEmpty(metaDesc)) metaDesc = FieldRenderer.Render(homeItem, "Meta Description");
if (String.IsNullOrEmpty(metaKeyword)) metaKeyword = FieldRenderer.Render(homeItem, "Meta Keywords");
}
catch (Exception ex)
{
metaTitle = DEFAULT_TITLE;
metaDesc = DEFAULT_DESC;
metaKeyword = DEFAULT_KEYWORDS;
}
metaDetails.Add(metaTitle);
metaDetails.Add(metaDesc);
metaDetails.Add(metaKeyword);
return metaDetails;
}