Wie erstellen wir die Sitemap- Seite in Magento 2 wie in Magento 1?
http://example.com/catalog/seo_sitemap/
Wie erstellen wir die Sitemap- Seite in Magento 2 wie in Magento 1?
http://example.com/catalog/seo_sitemap/
Antworten:
Magento 2: Standardmäßig wird keine HTML-Sitemap bereitgestellt.
Kann die kostenlose Erweiterung verwenden:
https://www.mageplaza.com/magento-2-seo-extension/
Sie haben folgende Möglichkeiten
CMS-Seiten : Kann auf Magento 1 verweisen Artikel /programming/5020257/creating-a-magento-sitemap-page Wenn Sie es dann in Magento 2 konvertieren, erhalten Sie einige hilfreiche Informationen für CMS-Seiten
Für Kategorien und Unterkategorien : Alle verfügbaren Kategorien abrufen, Unterkategorieliste in Magento 2
Für Kategorien Produkte : Magento 2: Produktkollektion mit Kategorie-ID abrufen
Ab Magento Version 2.1.8 ist die Sitemap-Funktionalität standardmäßig im Administrator enthalten.
Definieren Sie den Standort der Sitemap: Marketing> SEO & Suche> Sitemap . Sie können die Sitemap-Datei auch manuell von hier aus generieren.
Konfigurieren Sie die Cron-Einstellungen: Stores> Configuration> Catalog> XML Sitemap
Hier finden Sie Anweisungen zum Einrichten wiederkehrender Cron-Jobs . Genau wie Magento 1.x ruft der Cron des Systems das Magento Cron-Skript auf, das Jobs plant.
Magento 2 hat keine HTML-Sitemap-URL für Kategorien und Produkte wie in Magento 1.xx. Dazu können Sie eine CMS-Seite wie 'sitemap /' erstellen und eine HTML-Datei aufrufen
Dies beinhaltet den benutzerdefinierten Code zum Aufrufen aller Kategorien
Rufen Sie auf der cms-Seite Folgendes auf:
{{block class="Magento\Framework\View\Element\Template" template="Magento_Theme::sitemap.phtml" name="customsitemap"}}
Rufen Sie dann in phtml Folgendes auf:
<?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>
Auf diese Weise können Sie im Magento 2 einfach eine Sitemap-URL erstellen.
Sie können Ihr Modul entwickeln, das das Standard-Magento-Modul erweitert module-sitemap
.
Sie können basierend auf dem Sitemap
Modell mit den Methoden \Magento\Sitemap\Model\Sitemap::generateXml
und _initSitemapItems
.
2 Ansätze:
Erstellen Sie eine neue FO controller
und verwalten Sie die Anzeige mit template/layout
etc.
Generieren Sie eine statische Datei in HTML, die von Webserver
einer benutzerdefinierten URL bereitgestellt wird.
Es wird nicht sehr schwierig sein.
Vielen Dank,
Überprüfen Sie, ob dieses Plugin kostenlos und anpassbar ist. Https://marketplace.magento.com/vsourz-html-sitemap.html
Sie können entweder die Sitemap-Erweiterung ( https://marketplace.magento.com/fme-advanced-sitemap-generator.html ) verwenden, um die Arbeit ohne Programmierung zu erledigen, oder Sie können sich einfach diesen Artikel ansehen: https : //www.fmeextensions.com/blog/generate-google-optimized-sitemap-xml-in-magento-2/