2013-03-13 21 views
0

當前我們的站點地圖顯示了我們的每個產品和類別。我希望能夠過濾這些結果以僅顯示具有「目錄/搜索」可見性的產品以及包含具有「目錄/搜索」可見性的產品的類別任何幫助將不勝感激!以編程方式過濾Magento站點地圖

+0

FYI,Magento的,現在有自己的SE網站:http://magento.stackexchange.com – 2013-03-13 23:54:27

回答

1

一個廣泛的問題的分類 - 你可能會更好地啓動項目,然後提出具體問題。

您想要重寫的方法是在sitemap/sitemap模型中。

public function generateXml() 
{ 
    //... 
} 

這是加載站點地圖數據並生成XML的方法。有沒有優雅的切入點,過濾得到生成的內容,所以我會採取兩種方法都

  • 呼叫parent::generateXml()生成地圖,你通常會,BU然後重新裝入文件($this->getPath())和轉換文檔所以你不需要的項目不包括在內,並且將新文件寫在舊的文件上。

  • 複製在generateXML現有的代碼,但增加了一個條件,以圍繞線155類環在Magento CE 1.7

前者是清潔 - 後來的更快。祝你好運

0

$ collection = Mage :: getResourceModel('sitemap/catalog_product') - > getCollection($ storeId);

在函數public function generateXml()中修改此行Mage_Sitemap_Model_Sitemap 並應用過濾器。 修改後的行應如下所示:

$ collection = Mage :: getModel('catalog/product') - > getCollection($ storeId) - > addAttributeToFilter('visibility',4);

這雖與Magento的標準修改核心文件建議不建議這樣使用上面的建議,您可以覆蓋上述類和新生成的類修改功能generateXml()

相關問題