J'essaie d'obtenir tous les éléments d'un certain type de document, qui sont étiquetés de la même manière que l'un des points du nœud/élément actuel.Pour une boucle avec Umbraco TagQuery avec plusieurs points pour obtenir des nœuds/éléments associés
je peux obtenir tous les éléments connexes de une étiquette par ce déclarant explicitement via:
var taggedContent = Umbraco.TagQuery.GetContentByTag("Tag1");
var taggedItems = taggedContent.Where(c => c.IsDocumentType("SpecificPageType", true) && c.IsVisible());
Mais, comme GetContentByTag
ne prend qu'un seul argument, je ne suis pas sûr de savoir comment structurer la boucle foreach utiliser ma liste de tags
Je voudrais créer une boucle foreach qui aboutit à une liste d'éléments associés qui combine tous les éléments associés de chaque variable, de sorte que je puisse ensuite la commander avec .OrderBy("Id descending")
.
Voici mon code actuel statique qui fonctionne:
var tags = Umbraco.TagQuery.GetTagsForEntity(Node.getCurrentNodeId()).DistinctBy(t => t.Text).OrderBy(t => t.Text);
var taggedContent = Umbraco.TagQuery.GetContentByTag("Tag1");
var taggedItems = taggedContent.Where(c => c.IsDocumentType("SpecificPageType", true) && c.IsVisible());
foreach (var relatedItem in taggedItems)
{
<a href="@relatedItem.Url">
@{
var pageTitle = relatedItem.GetPropertyValue("pageTitle").ToString();
}
<h6>@Umbraco.Truncate(pageTitle, 80, true)</h6>
</a>
}
Mon échec des tentatives de construire la boucle:
var tags = Umbraco.TagQuery.GetTagsForEntity(Node.getCurrentNodeId()).DistinctBy(t => t.Text).OrderBy(t => t.Text);
var listIWant = new List<IPublishedContent>();
foreach (var tag in tags)
{
var taggedContent = Umbraco.TagQuery.GetContentByTag(tag.ToString());
var taggedItems = taggedContent.Where(c => c.IsDocumentType("SpecificPageType", true) && c.IsVisible());
//How to modify the list here?
}
//OR
var tagsCount = tags.Count();
for (var i = 0; i < tagsCount; i++)
{
var taggedContent = Umbraco.TagQuery.GetContentByTag(tag.ToString());
var taggedItems = taggedContent.Where(c => c.IsDocumentType("SpecificPageType", true) && c.IsVisible());
//How to modify the list here?
}
// Modified the list to contain everything in the loop above, now order it
var orderedList = listIWant.OrderBy("Id descending");
// Create links from ordered list
foreach (var relatedItem in orderedList)
{
<a href="@relatedItem.Url">
@{
var pageTitle = relatedItem.GetPropertyValue("pageTitle").ToString();
}
<h6>@Umbraco.Truncate(pageTitle, 80, true)</h6>
</a>
}
Merci pour toute aide et laissez-moi savoir si je suis pas clair ou besoin plus d'informations.