Magento 2: Como posso obter o mapa do site no magento 2?

9

Como criamos a página do sitemap no Magento 2 como a mesma que temos no Magento 1?

http://example.com/catalog/seo_sitemap/
Ashish Jagnani
fonte
11
Falando sobre XML (sitemap.xml) / Sitemap HTML? fastcomet.com/tutorials/magento2/sitemap
Ankit Shah
Eu quero o mapa HTML local mesmo que em Magento1.x
Ashish Jagnani
Para gerar um novo mapa do site para o seu site, consulte isso; talvez seja possível obter ajuda emagentosupport.com/2018/12/…
Denish Vachhani

Respostas:

6

Magento 2: Por padrão, não fornece Sitemap HTML.

Pode usar a extensão gratuita:

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

Você tem as seguintes opções

Páginas do CMS : pode consultar o artigo Magento 1 /programming/5020257/creating-a-magento-sitemap-page Em seguida, converta-o para o Magento 2 e terá algumas informações úteis para páginas do CMS

Para Categorias e Subcategorias : Obtendo todas as categorias disponíveis, lista de subcategorias no magento 2

Para categorias Produto : Magento 2: obtenha coleção de produtos usando o ID da categoria

Ankit Shah
fonte
US $ 79 na Mageworx. Surpreendido, ainda não há uma versão gratuita. Sitemap é bastante vital em termos de SEO.
rhand
Sim, não por padrão. Portanto, escolha entre as opções que você preferir
Ankit Shah 3/16
Magento fornece a opção de mapa do site. Verifique pls: belvg.com/blog/how-to-generate-a-sitemap-in-magento-2-0.html
Jai
isso também ajudará: magenticians.com/create-magento-2-sitemap
Jai
7

A partir do Magento versão 2.1.8, a funcionalidade do mapa do site está incluída no administrador por padrão.

  • Defina o local do mapa do site: Marketing> SEO e pesquisa> Mapa do site . Você também pode gerar manualmente o arquivo do mapa do site a partir daqui.

  • Defina as configurações do cron: Lojas> Configuração> Catálogo> Sitemap XML

Aqui estão as instruções para configurar tarefas cron recorrentes . Assim como o Magento 1.x, o cron do sistema chama o script cron do Magento, que agenda tarefas.

nshiff
fonte
11
Este deve ser o correto, a instalação de mods de terceiros deve ser o último recurso para algo já incorporado. Obrigado pessoal!
ajankuv
6

O Magento 2 não tem um URL de mapa do site html para categoria e produtos, como no magento 1.xx. Para isso, você pode criar uma página do CMS como 'sitemap /' e chamar um arquivo phtml

que incluirá o código personalizado para chamar todas as categorias

Na página cms, chame isso:

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

então, em phtml, chame isso:

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

Dessa forma, você pode criar facilmente um URL de mapa do site no Magento 2.

Abhinav Singh
fonte
Oi, eu quero criar meu próprio mapa do site html, por favor, pode me ajudar .. como usar este código. @Riddhish Bhayani
Pergunte Bytes
2

Você pode desenvolver seu módulo que estenderá o módulo Magento padrão module-sitemap.

Você pode basear-se no Sitemapmodelo com os métodos \Magento\Sitemap\Model\Sitemap::generateXmle _initSitemapItems.

2 abordagens:

  1. Crie um novo FO controllere gerencie a exibição com template/layoutetc.

  2. Gere um arquivo estático em HTML que será exibido Webserverem um URL personalizado.

Não será muito difícil.

Obrigado,

Franck Garnier
fonte