3

異なるカテゴリのページは異なるフッターを表示する必要があり、これが背後にある考え方です。似たような質問がたくさんあることは知っていて、すべて試してみましたが、うまくいきませんでした。カスタム カテゴリ属性をカテゴリ ページに追加しました。それをフッターに表示したいと考えています。

私は使用しようとしました:

<?php if($_customAttribute = $this->getCurrentCategory()->getCustomAttribute()):  ?>

<?php echo $_helper->categoryAttribute($_category, $_customAttribute, 'footer_text') ?> 

しかし、私はこれについて何の結果も得ていません。

4

1 に答える 1

1

このように試すことができます。

$category = Mage::registry('current_category');
<?php if ($category->getFooterText()) : ?>
    <?php echo Mage::helper('catalog/output')->categoryAttribute($category, $category->getFooterText(), 'footer_text');?>
<?php endif;?>

ただし、これを footer.phtml に追加すると、ブロック キャッシュがオンになっていると機能しません。フッターはキャッシュされるため、ページをロードすると、上記のコードは次のページには影響しません。
[編集]
一部のページに別のフッターを付けたい場合は、フッター ブロックのキャッシュ キーを変更する必要があります。ここにその方法の説明がありますが、これはカテゴリではなく単純なページ用です。コンセプトは同じです。
必要なgetCacheKeyInfoのは、カテゴリに依存する方法だけを変更することです。このようなもの:

public function getCacheKeyInfo()
{
    $info = parent::getCacheKeyInfo();
    $category = Mage::registry('current_category');
    if ($category) {
        $info[] = $category->getId();
    }
    return $info;
}
于 2013-08-09T07:46:41.627 に答える