Cách chúng tôi tạo trang sơ đồ trang web trong Magento 2 giống như chúng tôi có trong Magento 1?
http://example.com/catalog/seo_sitemap/
Cách chúng tôi tạo trang sơ đồ trang web trong Magento 2 giống như chúng tôi có trong Magento 1?
http://example.com/catalog/seo_sitemap/
Câu trả lời:
Magento 2: Theo mặc định không cung cấp Sơ đồ trang web HTML.
Có thể sử dụng tiện ích mở rộng miễn phí:
https://www.mageplaza.com/magento-2-seo-extension/
Bạn có các tùy chọn sau
Các trang CMS : Có thể tham khảo Bài viết về Magento 1 /programming/5020257/creating-a-magento-sitemap-page Sau đó Chuyển đổi nó thành Magento 2 sẽ giúp ích gì cho các trang CMS
Đối với Danh mục & Danh mục phụ : Nhận tất cả danh mục có sẵn, danh sách danh mục phụ trong magento 2
Đối với Danh mục Sản phẩm : Magento 2: nhận bộ sưu tập sản phẩm bằng danh mục id
Kể từ phiên bản Magento 2.1.8, chức năng sơ đồ trang web được bao gồm trong quản trị viên theo mặc định.
Xác định vị trí sơ đồ trang web: Tiếp thị> SEO & Tìm kiếm> Sơ đồ trang web . Bạn cũng có thể tự tạo tệp sơ đồ trang web từ đây.
Định cấu hình cài đặt cron: Cửa hàng> Cấu hình> Danh mục> Sơ đồ trang web XML
Dưới đây là hướng dẫn để thiết lập các công việc định kỳ . Giống như Magento 1.x, cron của hệ thống gọi kịch bản cron Magento, lên lịch công việc.
Magento 2 không có url sơ đồ trang web html cho danh mục và sản phẩm như trong magento 1.xx. Đối với điều này, bạn có thể tạo một trang CMS như 'sitemap /' và gọi một tệp phtml
sẽ bao gồm mã tùy chỉnh để gọi tất cả các danh mục
Trong trang cms, gọi đây là:
{{block class="Magento\Framework\View\Element\Template" template="Magento_Theme::sitemap.phtml" name="customsitemap"}}
sau đó trong phtml, gọi đây:
<?php
$objectManagerr = \Magento\Framework\App\ObjectManager::getInstance();
$categoryFactory = $objectManagerr->create('Magento\Catalog\Model\ResourceModel\Category\CollectionFactory');
$categoryy = $categoryFactory->create()
->addAttributeToSelect('*');
//->addAttributeToFilter('is_active',1)
//->addAttributeToFilter('is_anchor',1);
$excludedCategory = array(0);
?>
<ul class="sitelist">
<?php foreach ($categoryy as $cc): ?>
<?php if(!in_array($cc->getId(), $excludedCategory)):?>
<div class = "sitemap-list" style="float:left;">
<?php if ($cc->getLevel()==2):?>
<li>
<h3><a href="<?php echo $cc->getUrl(); ?>"><?php echo $cc->getName(); ?></a></h3>
<?php
if($cc->getChildren())
{
$sub = explode(",", $cc->getChildren());
$categoryFactorysub = $objectManagerr->create('Magento\Catalog\Model\ResourceModel\Category\CollectionFactory');
$categoryysub = $categoryFactorysub->create()
->addAttributeToSelect('*');
$subcat=$categoryysub->addFieldToFilter('entity_id', array('in' =>$sub));
//$subcat->printlogquery(true);exit;
?>
<ul style="margin-left:15px;">
<?php foreach ($subcat as $subcategories){ ?>
<?php if ($subcategories->getLevel()==3):?>
<div class = "sitemap-list">
<li>
<?php if($subcategories->getImageUrl()): ?>
<div class="mega-menu-ad">
<img src="<?php echo ($subcategories->getImageUrl()); ?>" width="25" height="25" />
</div>
<?php endif; ?>
<a href="<?php echo $subcategories->getUrl(); ?>"><?php echo $subcategories->getName(); ?></a>
<?php
if($subcategories->getChildren())
{
$subSubCat = explode(",", $subcategories->getChildren());
$subsubCatFactory = $objectManagerr->create('Magento\Catalog\Model\ResourceModel\Category\CollectionFactory');
$subSubCatCollection = $subsubCatFactory->create()
->addAttributeToSelect('*');
$subSubCollection=$subSubCatCollection->addFieldToFilter('entity_id', array('in' =>$subSubCat));
?>
<ul style="margin-left:20px;">
<?php foreach ($subSubCollection as $subSubcategories){ ?>
<div class = "sitemap-list">
<li>
<?php if($subSubcategories->getImageUrl()): ?>
<div class="mega-menu-ad">
<img src="<?php echo ($subSubcategories->getImageUrl()); ?>" width="25" height="25" />
</div>
<?php endif; ?>
<a href="<?php echo $subSubcategories->getUrl(); ?>"><?php echo $subSubcategories->getName()?></a>
</li>
</div>
<?php } ?>
</ul>
<?php } ?>
</li>
</div>
<?php endif;?>
<?php } ?>
</ul>
<?php } ?>
</li>
<?php endif;?>
</div>
<?php endif;?>
<?php endforeach; ?>
</ul>
Bằng cách này, bạn có thể dễ dàng tạo URL sơ đồ trang web trong Magento 2.
Bạn có thể phát triển mô-đun của mình sẽ mở rộng mô-đun Magento mặc định module-sitemap
.
Bạn có thể dựa trên Sitemap
mô hình với \Magento\Sitemap\Model\Sitemap::generateXml
và _initSitemapItems
phương thức.
2 cách tiếp cận:
Tạo một cái mới FO controller
và quản lý màn hình với template/layout
vv
Tạo một tệp tĩnh trong HTML sẽ được cung cấp bởi Webserver
một URL tùy chỉnh.
Nó sẽ không quá khó khăn.
Cảm ơn,
Kiểm tra plugin này miễn phí và có thể tùy chỉnh https://marketplace.magento.com/vsourz-html-sitemap.html
Bạn có thể sử dụng tiện ích mở rộng Sơ đồ trang web ( https://marketplace.magento.com/fme-advified-sitemap-generator.html ) sẽ giúp bạn hoàn thành công việc mà không cần lập trình HOẶC bạn chỉ cần xem bài viết này: https : //www.fmeextensions.com/blog/generate-google-optimized-sitemap-xml-in-magento-2/