启用整页缓存时是否可以获取当前类别?
在这种情况下不执行目录控制器,因此注册表(current_category
键)为空。我所能得到的只是根类别
由于
答案 0 :(得分:3)
可能的解决方案之一是通过给定的URL获取类别ID。你有url重写表,你有请求字符串。
// Try to get category id directly from request
if (Mage::app()->getRequest()->getParam('id')) {
return Mage::app()->getRequest()->getParam('id');
}
// Try to get category id from request by rewrite request path
$aliases = Mage::app()->getRequest()->getAliases();
if ($aliases && is_array($aliases) && !empty($aliases) && $aliases['rewrite_request_path']) {
$urlRewrite = Mage::getModel('core/url_rewrite')->loadByRequestPath($aliases['rewrite_request_path']);
if ($urlRewrite && $urlRewrite->getId()) {
return $urlRewrite->getCategoryId();
}
}
可能它不是很漂亮的解决方案,但对我来说效果很好。
答案 1 :(得分:1)
您需要通过图层获取它:
$layer = Mage::getSingleton('catalog/layer');
$_category = $layer->getCurrentCategory();
$currentCategoryId= $_category->getId();
此致 肯尼
答案 2 :(得分:0)
如图所示,你正在打洞!
我正在编写一个带有随机产品列表块的模块,但事实并非如此 通过实施打孔来受FPC影响
这意味着您的块是Magento的精简版(请参阅applyWithoutApp()方法),因此要从注册表中访问current_category,您需要在打孔模块中的Container中注册它。 / p>