Php Magento:从下拉菜单中排除特定类别

Php Magento:从下拉菜单中排除特定类别,php,magento,Php,Magento,我试图从随机菜单中排除一个特定类别。我一直在寻找答案,并在这里找到了一些潜在的解决方案,但没有一个奏效 这就是我目前拥有的: <?php $catID = $this->category_id; $catName = $this->category_name; $catType = $this->category_type; $category = Mage::getModel('catalog/category')->load($c

我试图从随机菜单中排除一个特定类别。我一直在寻找答案,并在这里找到了一些潜在的解决方案,但没有一个奏效

这就是我目前拥有的:

<?php
    $catID = $this->category_id;
    $catName = $this->category_name;
    $catType = $this->category_type;
    $category = Mage::getModel('catalog/category')->load($catID);
    $categories = $category->getCollection()
        ->addAttributeToSelect(array('name', 'thumbnail', 'description'))
        ->addAttributeToFilter('is_active', 1)
        ->addIdFilter( $category->getChildren() );
    $catIdEx = 38;
    $categories->getSelect()->join(array('cats' => 'catalog_category_product'), 'cats.product_id = e.entity_id');
    $categories->getSelect()->where('cats.category_id', array('neq' => $catIdEx));
    $categories->getSelect()->group(array('e.entity_id'));
    $categories->getSelect()->order('RAND()');
    $categories->getSelect()->limit(1);
?>
<?php foreach ($categories as $category): ?>
<div>
    <a href="<?php echo $category->getUrl(); ?>">
        <img src="<?php echo Mage::getBaseUrl('media') . 'catalog' . DS . 'category' . DS . $category->getThumbnail() ?>" alt="<?php echo $this->htmlEscape($category->getName()) ?>" class="boxedimage" />
    </a>
    <br />
    <h3>Spotlight <?php echo $catName ?></h3>
    <?php
        $sdesc = $category->getDescription();
        $sdesc = trim($sdesc);
        $limit = 230;
        if (strlen($sdesc) > $limit) {
            $sdesc = substr($sdesc, 0, strrpos(substr($sdesc, 0, $limit), ' '));
        }
    ?>
    <?php echo $sdesc."..."; ?>
    <div><a href="<?php echo $category->getUrl(); ?>" class="go">View <?php echo $category->getName(); ?> <?php echo $catType ?>...</a></div>
</div>
<?php endforeach; ?>


聚光灯
你的催收电话看起来太过分了,因为我相信这对你来说是有意义的,所以我会这么说-如果你只是想排除该类别,请将其添加到foreach中

<?php foreach ($categories as $category): ?>
<?php if($category->getId() !== $catIdEx) { ?>
<div>
<!-- your other code here -->

</div>
<?php } ?>
<?php endforeach; ?>

$excluded_category=数组('20','4','6');

这似乎也不起作用。我留下了我的编码。我还去掉了上面应该过滤掉的代码。在下拉列表中,我目前只有两个类别的珠宝被激活。您将在右侧看到聚光灯设计师。劳力士根本不应该出现,它仍然会找到自己的路。劳力士也是猫的ID:38。我多次检查以确保我的ID正确。听起来您的$catIdEx值不正确。在foreach循环中,add以确保您试图排除的代码具有您认为它所具有的ID。当我将代码放入其中时,SID是:38。出于某种原因,它不想隐藏38.Manoj。这确实有效,但不完全是我所需要的。代码在随机脚本上运行,该脚本选择了一个要突出显示的类别。每次刷新或转到新页面时,它都会更改。删除这个元素会删除整个元素。我只是想把它忘在脚本中,这样另一个脚本可以代替它。如果这有道理的话。
$excluded_category = array('20','4','6');
<?php foreach ($categories as $category): ?>
<?php if(!in_array($category->getId(),$excluded_category)) { ?>
<div>
<!-- your other code here -->

</div>
<?php } ?>
<?php endforeach; ?>