Kutunun dışında, hayır, Magento'nun Catalog -> Google Sitemapözelliğinin oluşturduğu site haritasından belirli ürünleri hariç tutmanın bir yolu yok .
Bunu programlı olarak yapmaya devam edersem, Magento'nun modern sürümleri (1.7.x dalında kontrol edildi, bu daha önceki / EE sürümlerinde olabilir) aşağıdaki kaynak modeli sınıfını kullan
Mage_Sitemap_Model_Resource_Catalog_Product
bir ürün listesi getirmek için.
#File: app/code/core/Mage/Sitemap/Model/Sitemap.php
$collection = Mage::getResourceModel('sitemap/catalog_product')->getCollection($storeId);
Bu standart bir Magento CRUD modeli getCollectiondeğildir ve bir toplama nesnesi döndürmez. Bunun yerine, getCollectionbu ürünler için veritabanını el ile sorgular.
Belirli ürünlerin site haritasında görünmesini engelleyen bir işlevsellik uygulayacak olsaydım,
Bir sınıf, getCollectionyöntemi çağıran yöntemi yeniden yazar parent::getCollectionve ardından dizideki tüm ürünleri el ile filtreler.
_addFilterÜst :: _ addFilter yöntemini çağıran ve ardından _selectbelirli ürünleri / ürünleri hariç tutmak için ek bir WHERE deyimi ekleyen bir sınıf yeniden yazma . Bir saldırı türü, ancak _selectveritabanını sorgulamak için kullanılan nesneye erişiminiz olan tek yöntemdir . İdeal olarak bir tür genel / statik bayrağa sahip olmak istersiniz, böylece yeni WHERE yan tümcelerinizi yalnızca bir kez eklersiniz.