2014-09-22 124 views
0

Magento的默認站點地圖生成產生一個XML文件,顯示所有產品,包括與可配置產品關聯的簡單產品。我只希望可配置產品不是相關的簡單產品,任何人都可以幫助我?Magento自定義站點

在法/網站地圖/型號/ Sitemap.php生成該XML地圖的功能被generateXml()和生成的產品網址的碼塊是:

$changefreq = (string)Mage::getStoreConfig('sitemap/product/changefreq', $storeId); 
$priority = (string)Mage::getStoreConfig('sitemap/product/priority', $storeId); 
$collection = Mage::getResourceModel('sitemap/catalog_product')->getCollection($storeId); 
foreach ($collection as $item) { 
    $xml = sprintf('<url><loc>%s</loc><lastmod>%s</lastmod><changefreq>%s</changefreq><priority>%.1f</priority></url>', 
    htmlspecialchars($baseUrl . $item->getUrl()), 
    $date, 
    $changefreq, 
    $priority 
    ); 
    $io->streamWrite($xml); 
} 
unset($collection); 

我嘗試使用

Mage::getModel('catalog/product')->getCollection(); 

,改變這一行:

htmlspecialchars($baseUrl . $item->getUrl()), 

這行得到它的工作

htmlspecialchars($item->getProductUrl()), 

我得到正確的產品(沒有相關的),但網址是這樣的:

http://www.domain.com/catalog/product/view/id/532/ 

我想要的網址選擇重寫,所以我改成了:

$collection = Mage::getModel('catalog/product')->getCollection($storeId) 
->addUrlRewrite(); 

但是我還是這樣的:

http://www.domain.com/catalog/product/view/id/532/ 

任何想法有什麼不對?

回答

0

你可以試試下面的代碼。

$product_collection = Mage::getModel('catalog/product')->getCollection()->addAttributeToFilter('entity_id', 16)->addUrlRewrite(); 
echo $product_collection->getFirstItem()->getProductUrl(); 

,或者你可以單獨加載網址,你已經擁有了產品收集比嘗試這樣的事情

Mage::getResourceSingleton('catalog/product')->getAttributeRawValue($productId, 'attribute_code', Mage::app()->getStore()); 
+0

感謝您的答覆,不幸的是我沒有得到期望的結果 – dimitraros 2014-09-24 08:56:19