Як ми створюємо сторінку сайту в Magento 2, як і у Magento 1?
http://example.com/catalog/seo_sitemap/
Як ми створюємо сторінку сайту в Magento 2, як і у Magento 1?
http://example.com/catalog/seo_sitemap/
Відповіді:
Magento 2: За замовчуванням не надається HTML Sitemap.
Можна використовувати безкоштовне розширення:
https://www.mageplaza.com/magento-2-seo-extension/
У вас є наступні варіанти
Сторінки CMS : Можна посилатись на Magento 1 Стаття /programming/5020257/creating-a-magento-sitemap-page Потім перетворіть його на Magento 2, що допоможе для сторінок CMS
Для категорій і підкатегорій : Отримання всіх доступних категорій, перелік підкатегорій в magento 2
Для категорій Продукт : Magento 2: отримати колекцію товару, використовуючи ідентифікатор категорії
Станом на версію Magento версії 2.1.8 функціонал мапи сайту за замовчуванням включений у адміністратор.
Визначте місце розташування карти : Маркетинг> SEO та пошук> Карта сайту . Ви також можете генерувати файл Sitemap вручну звідси.
Налаштування параметрів cron: Магазини> Конфігурація> Каталог> XML Sitemap
Ось інструкції щодо налаштування повторюваних завдань cron . Так само, як Magento 1.x, cron системи викликає скрипт Magento cron, який планує завдання.
У Magento 2 немає URL-адреса сайту html для категорії та продуктів, таких як magento 1.xx. Для цього ви можете створити сторінку CMS на зразок 'sitemap /' та викликати файл phtml
який буде включати в себе спеціальний код для виклику всіх категорій
На сторінці cms зателефонуйте до цього:
{{block class="Magento\Framework\View\Element\Template" template="Magento_Theme::sitemap.phtml" name="customsitemap"}}
тоді в phtml викликайте це:
<?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>
Таким чином ви можете легко створити URL-адресу мапи в Magento 2.
Ви можете розробити свій модуль, який розширить модуль Magento за замовчуванням module-sitemap
.
Ви можете базуватися на Sitemap
моделі з методами \Magento\Sitemap\Model\Sitemap::generateXml
і _initSitemapItems
.
2 підходи:
Створіть новий FO controller
і керуйте дисплеєм template/layout
тощо.
Створіть статичний файл у HTML, який подаватиметься за Webserver
власною URL-адресою.
Це буде не дуже складно.
Дякую,
Перевірте цей плагін, він безкоштовний і настроюється https://marketplace.magento.com/vsourz-html-sitemap.html
Ви можете скористатися розширенням Sitemap ( https://marketplace.magento.com/fme-advanced-sitemap-generator.html ), яке допоможе вам виконати роботу без програмування АБО ви можете просто переглянути цю статтю: https : //www.fmeextensions.com/blog/generate-google-optimized-sitemap-xml-in-magento-2/