3

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

4

1 回答 1

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。

于 2013-01-01T03:00:30.440 回答