在搜索结果的分层导航中隐藏特定类别

时间:2012-12-31 17:27:29

标签: magento navigation hide categories

我想隐藏我的分层导航中的一个类别。我将“在导航中显示”设置为否,但它仍显示在搜索结果页面上。有没有办法隐藏这个?

1 个答案:

答案 0 :(得分:1)

要从分层导航中排除单个类别,请按照以下步骤操作。请注意,您可以针对任何类型的类别列表执行此操作。

  1. 打开 /app/design/frontend/default/YOURTHEMENAME/template/catalog/navigation/left.phtml 。如果它不存在,请从基础文件夹中复制它。
  2. 找到代码:

    <dl id="narrow-by-list2">
        <dt><?php echo $this->__('Category') ?></dt>
        <dd>
            <ol>
            <?php foreach ($_categories as $_category): ?>
    
                <?php if($_category->getIsActive()): ?>
                <li>
                    <a href="<?php echo $this->getCategoryUrl($_category) ?>"<?php if ($this->isCategoryActive($_category)): ?> class="current"<?php endif; ?>><?php echo $this->htmlEscape($_category->getName()) ?></a> (<?php echo $_category->getProductCount() ?>)
                </li>
               <?php endif; ?> 
    
            <?php endforeach ?>
            </ol>
        </dd>
    </dl>
    
  3. 在foreach循环中添加此if语句(并且不要忘记关闭它):
    <?php if ($_category->getId() != 22): ?>

  4. 新代码如下所示:

    <dl id="narrow-by-list2">
        <dt><?php echo $this->__('Category') ?></dt>
        <dd>
            <ol>
            <?php foreach ($_categories as $_category): ?>
             <?php if ($_category->getId() != 22): ?> <!-- If statement here, replace category ID -->
                <?php if($_category->getIsActive()): ?>
                <li>
                    <a href="<?php echo $this->getCategoryUrl($_category) ?>"<?php if ($this->isCategoryActive($_category)): ?> class="current"<?php endif; ?>><?php echo $this->htmlEscape($_category->getName()) ?></a> (<?php echo $_category->getProductCount() ?>)
                </li>
               <?php endif; ?> 
              <?php endif; ?> <!-- End new If statement here -->
            <?php endforeach ?>
            </ol>
        </dd>
    </dl>
    
  5. 类别ID 替换为您要排除的类别的ID。

  6. 要查找类别的ID,请转到“Magento管理”面板和“类别”,当您单击左上角的编辑类别时,您将看到它的数字ID。