0

私はこれに取り組んでいます。特定の製品に行くと、その製品は完全に表示されます。しかし、検索欄に書いて商品が見つかった場合、このように表示されます。この表示をレンダリングするページは同じです。問題は「$parentId = Mage::registry('current_category')->getParentId();」にあると思います。問題は「現在のカテゴリ」です。ナビゲートされたアイテムと検索されたアイテムの両方のコンテンツが正しく表示されるように、if 条件をいくつか提案してください。このための私のコードは次のようになります。これについて私を助けてください。

<?php 
$parentId = Mage::registry('current_category')->getParentId();
$parent = Mage::getModel('catalog/category')->load($parentId);
$parentname = $parent->getName();
?>
4

1 に答える 1

0

カテゴリページから製品ページに移動すると、Magento はそのパスを保存し、URL とブレッドクラムにも表示されます。製品ページに直接アクセスすると、Magento は現在のカテゴリについて何も知りません。これは、製品に多くのカテゴリがあるか、カテゴリがまったくない可能性があるためです。

レジストリから現在のカテゴリを取得してから、null かどうかを確認できます。

$currentCat = Mage::registry('current_category');
if ($currentCat) {
$parent = Mage::getModel('catalog/category')->load($currentCat->getParentId());
//do what you need with parent
}

商品ページのレイアウトで必要な場合は、現在の商品のすべてのカテゴリを取得し、そのうちの 1 つの親カテゴリを取得することで、親カテゴリを取得することもできます。

于 2013-04-17T07:18:01.850 に答える