Magento 2: come posso ottenere la Sitemap in Magento 2?


9

Come creiamo la pagina sitemap in Magento 2 come la stessa che abbiamo in Magento 1?

http://example.com/catalog/seo_sitemap/

1
Parlando di XML (sitemap.xml) / HTML Sitemap? fastcomet.com/tutorials/magento2/sitemap
Ankit Shah

Voglio che la mappa del sito HTML sia la stessa di Magento1.x
Ashish Jagnani,

Per generare una nuova sitemap per il tuo sito riferisci questo potrebbe essere possibile puoi ottenere aiuto emagentosupport.com/2018/12/…
Vachhani

Risposte:


6

Magento 2: per impostazione predefinita non fornisce Sitemap HTML.

Può usare l'estensione gratuita:

https://www.mageplaza.com/magento-2-seo-extension/

Hai le seguenti opzioni

Pagine CMS : può fare riferimento a Magento 1 articolo /programming/5020257/creating-a-magento-sitemap-page Quindi convertirlo in Magento 2 farà alcune cose utili per le pagine CMS

Per categorie e sottocategorie : ottenere tutte le categorie disponibili, elenco delle sottocategorie in magento 2

Per le categorie Prodotti : Magento 2: ottieni la raccolta dei prodotti utilizzando l'ID categoria


$ 79 dollari al Mageworx. Sorpreso non esiste ancora una versione gratuita. Sitemap è SEO molto vitale per quanto riguarda.
UR e

Sì, non per impostazione predefinita. Quindi scegli tra le opzioni che preferisci
Ankit Shah,

Magento fornisce l'opzione Sitemap. pls check: belvg.com/blog/how-to-generate-a-sitemap-in-magento-2-0.html
Jai


7

A partire dalla versione 2.1.8 di Magento, la funzionalità Sitemap è inclusa nell'amministratore per impostazione predefinita.

  • Definisci la posizione della mappa del sito: Marketing> SEO e ricerca> Mappa del sito . Puoi anche generare manualmente il file Sitemap da qui.

  • Configurare le impostazioni cron: Store> Configurazione> Catalogo> Mappa del sito XML

Ecco le istruzioni per impostare i lavori cron ricorrenti . Proprio come Magento 1.x, il cron del sistema chiama lo script cron di Magento, che pianifica i lavori.


1
Questo dovrebbe essere quello corretto, l'installazione di mod di terze parti dovrebbe essere l'ultima risorsa per qualcosa di già integrato. Grazie ragazzi!
Ajankuv,

6

Magento 2 non ha l'URL Sitemap HTML per categoria e prodotti come in Magento 1.xx. Per questo, puoi creare una pagina CMS come 'sitemap /' e chiamare un file phtml

che includerà il codice personalizzato per chiamare tutta la categoria

Nella pagina cms, chiama questo:

{{block class="Magento\Framework\View\Element\Template" template="Magento_Theme::sitemap.phtml" name="customsitemap"}}

quindi in phtml, chiama questo:

<?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>

In questo modo puoi creare facilmente un URL sitemap in Magento 2.


Ciao, voglio creare la mia sitemap html, per favore, puoi aiutarmi ... come usare questo codice. @Riddhish Bhayani
Chiedi a Bytes il

2

Puoi sviluppare il tuo modulo che estenderà il modulo Magento predefinito module-sitemap.

È possibile basarsi sul Sitemapmodello con i metodi \Magento\Sitemap\Model\Sitemap::generateXmle _initSitemapItems.

2 approcci:

  1. Creane uno nuovo FO controllere gestisci il display con template/layoutecc.

  2. Genera un file statico in HTML che verrà servito da Webserverun URL personalizzato.

Non sarà molto difficile.

Grazie,



Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.