如何清除单个类别的缓存?当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的值)。
答案 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 /中打开元文件。
祝你好运和快乐的黑客攻击!