階層化されたナビゲーションから 1 つのカテゴリだけを非表示にしたいと考えています。「ナビゲーションに表示」を「いいえ」に設定していますが、それでも検索結果ページに表示されます。これを隠す方法はありますか?
質問する
5059 次
1 に答える
1
レイヤード ナビゲーションから 1 つのカテゴリを除外するには、次の手順に従ってください。これは、どのタイプのカテゴリ リストでも実行できることに注意してください。
- /app/design/frontend/default/YOURTHEMENAME/template/catalog/navigation/left.phtmlを開きます。存在しない場合は、ベース フォルダーからコピーします。
コードを見つけます:
<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>
次の if ステートメントを foreach ループのすぐ内側に追加します (閉じるのを忘れないでください)。
<?php if ($_category->getId() != 22): ?>
新しいコードは次のようになります。
<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>
カテゴリ IDを、除外するカテゴリのID に置き換えます。
カテゴリの ID を確認するには、Magento 管理パネルとカテゴリに移動します。左上のカテゴリをクリックして編集すると、数値 ID が表示されます。
于 2013-01-01T03:00:30.440 に答える