Magento - 清除单个类别的缓存

时间:2011-09-20 05:12:32

标签: caching magento

如何清除单个类别的缓存?当FPC(整页缓存)打开时,显示缺货商品已关闭,产品售罄,类别页面仍显示产品(没有“缺货”消息)。当用户点击该页面时,该产品仍然列为库存。我添加了一个观察者来清除产品上的缓存并解决了产品页面。但是,我似乎无法清除类别页面的缓存。这是我到目前为止所尝试的:

我根据Mage_Catalog_Model_Category :: move方法中的内容尝试了这个:

Mage::app()->cleanCache(array(Mage_Catalog_Model_Category::CACHE_TAG));

但看起来它应该清除所有类别的缓存(当我使用它时似乎不起作用)。我想要的东西可以让我清除category_id = 123的缓存。

我也尝试过:

Mage::app()->cleanCache('catalog_category'.$category_id);

但似乎根本没有做任何事情(注意'catelog_category'是Mage_Catalog_Model_Category :: CACHE_TAG的值)。

2 个答案:

答案 0 :(得分:2)

所以看起来要清除你必须使用的FPC:

Mage::app()->getCacheInstance()->cleanType('full_page');

但这会刷新所有FPC。我的最终解决方案要求我使用以下方法清除FPC 重新索引类别

Mage::getSingleton('index/indexer')->processEntityAction(
    $category, Mage_Catalog_Model_Category::ENTITY, 
        Mage_Index_Model_Event::TYPE_SAVE
);

其中$ category是Mage_Catalog_Model_Category实例

答案 1 :(得分:1)

标签需要精确:

Mage::app()->cleanCache(array(Mage_Catalog_Model_Category::CACHE_TAG.'_1234'));

您可以在缓存系统中查找或使用文件系统缓存并在/ var / cache /中打开元文件。

祝你好运和快乐的黑客攻击!