마 젠토 2 : 마 젠토 2에서 사이트 맵을 얻으려면 어떻게해야합니까?


9

Magento 1과 동일한 방식으로 Magento 2에서 사이트 맵 페이지를 만드는 방법 은 무엇입니까?

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

1
XML에 대해 이야기 (sitemap.xml) / HTML Sitemap? fastcomet.com/tutorials/magento2/sitemap
— Ankit Shah

HTML 사이트 맵을 Magento1.x와 동일
— Ashish Jagnani

귀하의 사이트에 대한 새로운 맵을 생성하는 것은 당신이 도움 받기가 가능하다 참조 emagentosupport.com/2018/12/...
— 데니쉬 Vachhani

답변:


6

마 젠토 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 : 카테고리 ID를 사용하여 제품 콜렉션 가져 오기


Mageworx에서 $ 79 달러. 아직 무료 버전이 없다는 것에 놀랐습니다. 사이트 맵은 매우 현명한 SEO 현명합니다.
— rhand

예, 기본적으로는 아닙니다. 따라서 원하는 옵션 중에서 선택하십시오
— Ankit Shah

마 젠토는 사이트 맵 옵션을 제공합니다. pls 확인 : belvg.com/blog/how-to-generate-a-sitemap-in-magento-2-0.html
— Jai

이 또한 도움이 될 것입니다 magenticians.com/create-magento-2-sitemap
— 재이에게

7

Magento 버전 2.1.8부터는 사이트 맵 기능이 기본적으로 관리자에 포함되어 있습니다.

  • 사이트 맵 위치를 정의하십시오 ( 마케팅> SEO & 검색> 사이트 맵) . 여기에서 사이트 맵 파일을 수동으로 생성 할 수도 있습니다.

  • cron 설정 구성 : 상점> 구성> 카탈로그> XML 사이트 맵

다음은 반복 크론 작업 을 설정하기 위한 지침입니다 . Magento 1.x와 마찬가지로 시스템의 크론은 작업을 예약하는 Magento 크론 스크립트를 호출합니다.


1
이것은 올바른 것이어야합니다. 타사 모드를 설치하는 것은 이미 내장 된 것의 최후의 수단이어야합니다. 감사합니다!
— ajankuv

6

Magento 2에는 magento 1.xx와 같은 카테고리 및 제품에 대한 html 사이트 맵 URL이 없습니다. 이를 위해 'sitemap /'과 같은 CMS 페이지를 만들고 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>

이렇게하면 Magento 2에서 사이트 맵 URL을 쉽게 만들 수 있습니다.


안녕하세요, 나 자신의 html 사이트 맵을 만들고 싶습니다. 도와주세요 ..이 코드를 사용하는 방법. @Riddhish Bhayani
— 물어 바이트

2

기본 Magento 모듈을 확장 할 모듈을 개발할 수 있습니다 module-sitemap.

및 방법 을 사용하여 Sitemap모델을 기반으로 할 수 있습니다 .\Magento\Sitemap\Model\Sitemap::generateXml_initSitemapItems

두 가지 접근 방식 :

  1. 새로운 것을 만들고 FO controller등을 사용하여 디스플레이를 관리하십시오 template/layout.

  2. HTML로 정적 파일을 생성하여 Webserver사용자 정의 URL에 제공합니다.

그리 어렵지 않을 것입니다.

감사,



당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.