在我的magento网站上,我可以使用以下方法显示所有CMS页面的列表:
Mage::getModel('cms/page')->getCollection()
但是现在我想在我的列表中隐藏404页面。怎么做?
由于
答案 0 :(得分:2)
默认情况下,404 cms页面的标识符为no-route
。你可以得到这样的集合:
$pages = Mage::getModel('cms/page')->getCollection()
->addFieldToFilter('identifier', array('neq'=>'no-route'));
但Magento提供了将页面设为404页面的可能性。因此,更清晰的方法是首先获得真正的404页面标识符。
$_errPage = Mage::getStoreConfig('web/default/cms_no_route');
$parts = explode('|', $_errPage);
$identifier = $parts[0];
$pages = Mage::getModel('cms/page')->getCollection()
->addFieldToFilter('identifier', array('neq'=>$identifier));
我还建议添加商店过滤器,以便只获取当前商店中启用的页面:
$pages = Mage::getModel('cms/page')->getCollection()
->addStoreFilter(Mage::app()->getStore()->getId())
->addFieldToFilter('identifier', array('neq'=>$identifier));