magento子类别限制

Gök*_*DIZ 1 php list magento

我用这段代码列出了子类别

$root = Mage::getModel('catalog/category')->load(3); // Put your category ID here.
$subCat = explode(',',$root->getChildren()); 
$collection  = $root->getCollection()->addAttributeToSelect("*")->addFieldToFilter("entity_id", array("in", $subCat) );
foreach($collection as $subcategory) { 
  echo '<a href="'.$subcategory->getURL() .'" />» '.$subcategory->getName().'</a><br/>';
}
Run Code Online (Sandbox Code Playgroud)

我想只显示前3个子类别.我该怎么做?

Mih*_*ncu 5

使用

$collection
    // ->addFieldToFilter...
    ->setPageSize(20)
    ->setCurPage(1);
Run Code Online (Sandbox Code Playgroud)


Mar*_*ius 5

尝试为集合添加限制.
此外,您可以获得根目录ID而无需对其进行硬编码.
您也不需要所有root子ID.您可以按父ID过滤集合.

$rootId = Mage::app()->getStore()->getRootCategoryId();
$collection  = Mage::getModel('catalog/category')->getCollection()->addAttributeToSelect("*")
            ->addFieldToFilter("parent_id", $rootId);
$collection->addAttributeToSort('position'); //sort by position
$collection->setPage(1, 3);//limit 3, page 1
foreach($collection as $subcategory) { 
   echo '<a href="'.$subcategory->getURL() .'" />» '.$subcategory->getName().'</a><br/>';
}
Run Code Online (Sandbox Code Playgroud)

  • 我认为这里提供的所有3个答案都是正确的.(这就是为什么我为另外2人+1了).我只是把它提升了一个档次并优化了其余的代码. (3认同)
  • @MihaiStancu然后这是偶然的.你应该总是发表评论,让这个人有机会对此做出反应,然后再投票.不是之前.你可以相信我,如果有充分的理由,我会改变或删除我的答案 (2认同)