Tôi đã phát triển một mô-đun bespoke liệt kê một loạt người trên trang web. Mỗi người có URL riêng (bộ điều khiển Magento riêng biệt, có CRUD cơ bản trên các mô hình Người) và tôi cần đưa các URL công khai này vào tệp XML Sơ đồ trang web của Google.
Tôi muốn sử dụng thế hệ sơ đồ trang web riêng của Magento và cron nếu có thể.
Việc này Mage_Sitemap_Model_Observer
đã lấy tất cả các bản ghi Sơ đồ trang web từ sitemaps
bảng và từng người gọi các generateXml()
phương thức của họ .
$collection = Mage::getModel('sitemap/sitemap')->getCollection();
/* @var $collection Mage_Sitemap_Model_Mysql4_Sitemap_Collection */
foreach ($collection as $sitemap) {
/* @var $sitemap Mage_Sitemap_Model_Sitemap */
try {
$sitemap->generateXml();
}
catch (Exception $e) {
$errors[] = $e->getMessage();
}
}
Tôi nghĩ rằng tôi cần thêm Sơ đồ trang web mới của mình vào sitemaps
bảng mà sau đó sẽ được gọi để tạo tệp XML (riêng) cho các bản ghi mô hình tùy chỉnh của tôi. Tuy nhiên, tôi không biết làm thế nào để bảo Magento sử dụng phần mở rộng của mình My_Module_Model_Sitemap
thay vì chỉ Mage_Sitemap_Model_Sitemap
, phần sau sẽ chỉ cho tôi một tệp XML liệt kê tất cả các danh mục, sản phẩm và trang CMS giống như sơ đồ trang web chính.
Các sitemaps
bảng có một sitemap_type
cột, nhưng điều này không bao giờ được tham chiếu trong Magento codebase như xa như tôi có thể nói.
Làm cách nào tôi có thể sử dụng công cụ sơ đồ trang web sẵn có của Magento trong khi ghi đè lên phương thức Mage_Sitemap_Model_Sitemap
của riêng mình generateXml()
? Hoặc tôi phải xây dựng một hệ thống sơ đồ trang web thay thế chỉ cho mục đích riêng của mình ở đây?
Mage_Sitemap_Model_Sitemap
và đưa cho tôi một sơ đồ trang web khác có chứa các sản phẩm, danh mục, trang CMS - nó không sử dụng phiên bản mở rộng của tôi. Tôi không chắc làm thế nào để nói với nó làm thế nào để làm như vậy.
Mage_Sitemap_Model_Sitemap
trang web và thêm vào mô hình của riêng tôi theo danh mục sản phẩm và cuộc gọi. Sẽ cập nhật sớm với tiến độ.
Mage_Sitemap_Model_Sitemap
lớp học và ghi đègenerateXml()
phải không? bạn đã thử gì