1

特定の属性フィルターが階層化されたナビゲーション ブロック (つまり、価格とカテゴリ) 内に表示されないようにする PHP コードの行がいくつかあります。このようにして、手動で表示したくないすべてのフィルターを追加する必要がありますが、これには多くの時間がかかり、最善の解決策ではありません。

私が望むのは、フィルター属性「価格」と「カテゴリー」が表示されることです。フィルター名が異なる場合、そのフィルターはまったく表示されません。このようにして、価格フィルターとカテゴリー フィルターが常に表示され、他のフィルターは非表示になります。リストに表示したくないすべてのフィルターを手動で追加する必要はありません。

私の質問は、今説明した方法で動作させるために、PHP コード内で何を変更する必要があるかということです。

    <?php $_filters = $this->getFilters() ?>
    <?php foreach ($_filters as $_filter): ?>
    <?php if($_filter->getItemsCount()): ?>
    <?php if($_filter->getName() != "Price" AND $_filter->getName() != "Category"): ?>
    <dt><?php echo $this->__($_filter->getName()) ?></dt>
    <dd><?php echo $_filter->getHtml() ?></dd>
    <?php endif; ?>
    <?php endif; ?>
    <?php endforeach; ?>
4

1 に答える 1

1

ああ、なるほど。おかしなことに、私は昨日、実質的に同じものに取り組んでいましたが、これは私にとってはうまくいきます (IF ステートメントの変更を意味します)。

<?php foreach ($_filters as $_filter): ?>
    <?php if (Mage::helper('catalog')->__($_filter->getName()) == 'Price' || Mage::helper('catalog')->__($_filter->getName()) == 'Category'): ?>
            <dt><?php echo Mage::helper('catalog')->__($_filter->getName()) ?></dt>
            <dd><?php echo $_filter->getHtml() ?></dd>
    <?php endif; ?>
<?php endforeach; ?>

うまくいけば、それもあなたにとってもうまくいくでしょう。

于 2012-07-19T13:40:18.663 に答える