上記の答えが最善の解決策です。
は、あなたは、単にコピーすることができ、アプリ/コード/コア/メイジ/カタログ/ブロック/ Nagivation.php
へ:
アプリ/コード/ローカル/メイジ/カタログ/ブロック/ Nagivation。php
このようにgetCacheKeyInfo()メソッドを変更します。
/**
* Get Key pieces for caching block content
*
* @return array
*/
public function getCacheKeyInfo()
{
$shortCacheId = array(
'CATALOG_NAVIGATION',
Mage::app()->getStore()->getId(),
Mage::getDesign()->getPackageName(),
Mage::getDesign()->getTheme('template'),
Mage::getSingleton('customer/session')->getCustomerGroupId(),
'template' => $this->getTemplate(),
'name' => $this->getNameInLayout(),
$this->getCurrenCategoryKey(),
// Your logic to make home/none home have different cache keys
Mage::getSingleton('cms/page')->getIdentifier() == 'home' ? '1' : '0'
);
$cacheId = $shortCacheId;
$shortCacheId = array_values($shortCacheId);
$shortCacheId = implode('|', $shortCacheId);
$shortCacheId = md5($shortCacheId);
$cacheId['category_path'] = $this->getCurrenCategoryKey();
$cacheId['short_cache_id'] = $shortCacheId;
return $cacheId;
}
この
ではなく、すべてのページで使用するための単一のテンプレートのコピーをキャッシュするよりも、2つのコピーをキャッシュしますホームページ/なし・ホームページのページのキー異なるキャッシュを行います。
私のポストには、この行にちょっとしたタイプがあります: 'Mage :: getSingleton( 'cms/page') - > getIdentifier()== 'home'? '1'、 '0' - は 'Mage :: getSingleton( 'cms/page') - > getIdentifier()== 'home'にする必要がありますか? '1': '0'は正しく動作するようにしました。 –
これはありがたいことですが、テストなしでブラウザに直接入力しました:) – Andrew