Umbraco - 获取 node/group 中使用的所有标签
Umbraco - Get All tags used in a node/group
我在umbraco.cms.businesslogic.Tags.Tag
下使用了GetTags()
方法来获取组或节点下的所有标签。
var tags = umbraco.cms.businesslogic.Tags.Tag.GetTags("default");
但是 umbraco.cms.businesslogic.Tags.Tag
现在已经过时了,还有其他更好的选择吗?
此外,新库是否提供基于标签的节点查询?
好的,所以 Umbraco 7 有了新的 TagService
库来处理标签。
要使用所有标签,
var service = UmbracoContext.Application.Services.TagService;
var blogTags = service.GetAllTags("default");
获取具体标签内容GetTaggedContentByTag()
是暴露的方法,
var sports = service.TagService.GetTaggedContentByTag("Gaming");
它 returns TaggedEntity 列表和具有 EntityId 的 TaggedEntity 对象属性.
Source 礼貌:Jimbo Jones
我发现了 TagService 的局限性,并使用以下方法从一组特定的节点中获取标签列表。仅按组查询标签对我不起作用。
var pages = parentpage.Children;
var allNodesWithTags = pages.Where("tags != \"\"");
List<string> taglist = new List<string>();
foreach (var node in allNodesWithTags)
{
taglist.AddRange(node.tags.ToString().Split(','));
}
taglist = taglist.OrderBy(q => q).ToList();
然后从子节点输出标签列表很简单:
@foreach (string tag in taglist.Distinct())
{
<li><a href="#" class="">@tag</a></li>
}
无需调用标签服务。
在 umbraco 7 中你可以使用这个:
var tags = Umbraco.TagQuery.GetAllTags();
或
var tags = Umbraco.TagQuery.GetAllTags(group);
你可以使用
var mycontents = Umbraco.TagQuery.GetContentByTag("mytag")
获取您的数据
我在umbraco.cms.businesslogic.Tags.Tag
下使用了GetTags()
方法来获取组或节点下的所有标签。
var tags = umbraco.cms.businesslogic.Tags.Tag.GetTags("default");
但是 umbraco.cms.businesslogic.Tags.Tag
现在已经过时了,还有其他更好的选择吗?
此外,新库是否提供基于标签的节点查询?
好的,所以 Umbraco 7 有了新的 TagService
库来处理标签。
要使用所有标签,
var service = UmbracoContext.Application.Services.TagService;
var blogTags = service.GetAllTags("default");
获取具体标签内容GetTaggedContentByTag()
是暴露的方法,
var sports = service.TagService.GetTaggedContentByTag("Gaming");
它 returns TaggedEntity 列表和具有 EntityId 的 TaggedEntity 对象属性.
Source 礼貌:Jimbo Jones
我发现了 TagService 的局限性,并使用以下方法从一组特定的节点中获取标签列表。仅按组查询标签对我不起作用。
var pages = parentpage.Children;
var allNodesWithTags = pages.Where("tags != \"\"");
List<string> taglist = new List<string>();
foreach (var node in allNodesWithTags)
{
taglist.AddRange(node.tags.ToString().Split(','));
}
taglist = taglist.OrderBy(q => q).ToList();
然后从子节点输出标签列表很简单:
@foreach (string tag in taglist.Distinct())
{
<li><a href="#" class="">@tag</a></li>
}
无需调用标签服务。
在 umbraco 7 中你可以使用这个:
var tags = Umbraco.TagQuery.GetAllTags();
或
var tags = Umbraco.TagQuery.GetAllTags(group);
你可以使用
var mycontents = Umbraco.TagQuery.GetContentByTag("mytag")
获取您的数据