Magento 2: ¿Cómo puedo obtener el mapa del sitio en magento 2?

9

¿Cómo creamos la página del mapa del sitio en Magento 2 como la que tenemos en Magento 1?

http://example.com/catalog/seo_sitemap/
Ashish Jagnani
fuente
1
¿Hablando de XML (sitemap.xml) / HTML Sitemap? fastcomet.com/tutorials/magento2/sitemap
Ankit Shah
Quiero el mapa del sitio HTML igual que en Magento1.x
Ashish Jagnani
Para generar un nuevo mapa del sitio para su sitio, puede ser posible que obtenga ayuda emagentosupport.com/2018/12/…
Denish Vachhani

Respuestas:

6

Magento 2: por defecto no proporciona HTML Sitemap.

Puede usar la extensión gratuita:

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

Tienes las siguientes opciones

Páginas de CMS : puede consultar el artículo de Magento 1 /programming/5020257/creating-a-magento-sitemap-page Luego convertirlo a Magento 2 será algo útil para las páginas de CMS

Para Categorías y Subcategorías : Obtener todas las categorías disponibles, lista de subcategorías en magento 2

Para las categorías de productos : Magento 2: obtenga la colección de productos utilizando el ID de categoría

Ankit Shah
fuente
$ 79 dólares en Mageworx. Sorprendido aún no hay una versión gratuita. El mapa del sitio es muy importante en cuanto a SEO.
Rhand
Sí, no por defecto. Así que elige entre las opciones que prefieras
Ankit Shah el
Magento proporciona la opción de mapa del sitio. Por favor, consulte: belvg.com/blog/how-to-generate-a-sitemap-in-magento-2-0.html
Jai
esto también ayudará: magenticians.com/create-magento-2-sitemap
Jai
7

A partir de la versión 2.1.8 de Magento, la funcionalidad del mapa del sitio está incluida en el administrador de forma predeterminada.

  • Defina la ubicación del mapa del sitio: Marketing> SEO y búsqueda> Mapa del sitio . También puede generar manualmente el archivo de mapa del sitio desde aquí.

  • Configure los ajustes cron: Tiendas> Configuración> Catálogo> Mapa del sitio XML

Aquí hay instrucciones para configurar trabajos cron recurrentes . Al igual que Magento 1.x, el cron del sistema llama al script cron de Magento, que programa los trabajos.

nshiff
fuente
1
Esta debería ser la correcta, la instalación de modificaciones de terceros debería ser el último recurso para algo ya incorporado. ¡Gracias, muchachos!
ajankuv
6

Magento 2 no tiene una URL de mapa de sitio HTML para la categoría y productos como en magento 1.xx. Para esto, puede crear una página CMS como 'sitemap /' y llamar a un archivo phtml

que incluirá el código personalizado para llamar a todas las categorías

En la página de cms, llame a esto:

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

luego en phtml, llame a esto:

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

De esta manera, puede crear fácilmente una URL de mapa del sitio en Magento 2.

Abhinav Singh
fuente
Hola, quiero crear mi propio mapa del sitio html. ¿Pueden ayudarme? ¿Cómo usar este código? @Riddhish Bhayani
Pregunte Bytes el
2

Puede desarrollar su módulo que extenderá el módulo predeterminado de Magento module-sitemap .

Puede basarse en el Sitemapmodelo con el\Magento\Sitemap\Model\Sitemap::generateXml_initSitemapItems métodos y .

2 enfoques:

  1. Cree una nueva FO controllery administre la pantalla contemplate/layout etc.

  2. Genere un archivo estático en HTML que será enviado Webservera una URL personalizada.

No será muy difícil.

Gracias,

Franck Garnier
fuente