Im Moment habe ich zwei verschachtelte Foreach, um die gesamte Kategorie zu durchlaufen, und es ist extrem langsam (3-4 Sekunden auf meinem lokalen Server). Ich denke, das Problem ist, dass ich -> LOAD () verwende, um den Bildpfad für die untergeordnete Kategorie zu erhalten. Gibt es eine andere Möglichkeit? oder sollte ich einfach die gesamte navigations-ui neu gestalten? irgendein Vorschlag?
$categories = Mage::getSingleton('catalog/category')
->getCollection()
->addAttributeToSelect('id')
->addAttributeToSelect('name')
->addAttributeToSelect('url_key')
->addAttributeToSelect('url')
->addAttributeToFilter('level',2)
->addIsActiveFilter()
->addAttributeToSort('position');
foreach ($categories as $category):
$id = $category->getId();
$children = $category->getChildrenCategories();
$name = $category->getName();
$url_path = $category->getUrl();
foreach ($children as $child):
$childId = $child->getId();
$thisChild = Mage::getSingleton('catalog/category')->load($childId);
$name = $thisChild->getName();
$url_key = $thisChild->getUrlKey();
$url_path = $child->getUrl();
$img = $thisChild->getImageUrl();
endforeach;
endforeach;
category
image
optimization
wlin
quelle
quelle
Antworten:
Ich weiß nicht, ob das überhaupt funktioniert, aber Sie können versuchen, damit zu arbeiten
Mage_Catalog_Model_Resource_Category_Tree
Diese Klasse sollte Ihnen die Möglichkeit geben, den Baum zu durchlaufen, jedoch nach dem Laden aller Kategorien.
quelle