目前,我们的站点地图显示了我们拥有的每个产品和类别。我希望能够过滤这些结果以仅显示具有“目录/搜索”可见性的产品以及包含具有“目录/搜索”可见性的产品的类别任何帮助将不胜感激!
2 回答
有点宽泛的问题——你最好开始项目,然后在出现具体问题时提出具体问题。
您要针对重写的方法在sitemap/sitemap
模型中。
public function generateXml()
{
//...
}
这是加载站点地图数据并生成 XML 的方法。过滤生成的内容没有优雅的入口点,所以我采取的两种方法是
parent::generateXml()
像往常一样调用以生成地图,然后重新加载文件 ($this->getPath()
) 并转换文档,以便不包含您不想要的项目,并将新文件写入旧文件。复制现有代码
generateXML
,但在 Magento CE 1.7 中的第 155 行周围的类别循环中添加条件
前者更干净——后者更快。祝你好运
$collection = Mage::getResourceModel('sitemap/catalog_product')->getCollection($storeId);
在类 Mage_Sitemap_Model_Sitemap 的函数 public function generateXml() 中更改此行并应用过滤器。修改后的行是这样的:
$collection = Mage::getModel('catalog/product')->getCollection($storeId)->addAttributeToFilter('visibility', 4);
这是一个建议,尽管不建议使用 Magento 标准修改核心文件,因此使用上述建议您可以覆盖上述类并在新创建的类中修改函数 generateXml()