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 getCollection
değildir ve bir toplama nesnesi döndürmez. Bunun yerine, getCollection
bu ü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, getCollection
yöntemi çağıran yöntemi yeniden yazar parent::getCollection
ve ardından dizideki tüm ürünleri el ile filtreler.
_addFilter
Üst :: _ addFilter yöntemini çağıran ve ardından _select
belirli ü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 _select
veritabanı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.