Magento 1과 동일한 방식으로 Magento 2에서 사이트 맵 페이지를 만드는 방법 은 무엇입니까?
http://example.com/catalog/seo_sitemap/
Magento 1과 동일한 방식으로 Magento 2에서 사이트 맵 페이지를 만드는 방법 은 무엇입니까?
http://example.com/catalog/seo_sitemap/
답변:
마 젠토 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를 사용하여 제품 콜렉션 가져 오기
Magento 버전 2.1.8부터는 사이트 맵 기능이 기본적으로 관리자에 포함되어 있습니다.
사이트 맵 위치를 정의하십시오 ( 마케팅> SEO & 검색> 사이트 맵) . 여기에서 사이트 맵 파일을 수동으로 생성 할 수도 있습니다.
cron 설정 구성 : 상점> 구성> 카탈로그> XML 사이트 맵
다음은 반복 크론 작업 을 설정하기 위한 지침입니다 . Magento 1.x와 마찬가지로 시스템의 크론은 작업을 예약하는 Magento 크론 스크립트를 호출합니다.
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을 쉽게 만들 수 있습니다.
기본 Magento 모듈을 확장 할 모듈을 개발할 수 있습니다 module-sitemap
.
및 방법 을 사용하여 Sitemap
모델을 기반으로 할 수 있습니다 .\Magento\Sitemap\Model\Sitemap::generateXml
_initSitemapItems
두 가지 접근 방식 :
새로운 것을 만들고 FO controller
등을 사용하여 디스플레이를 관리하십시오 template/layout
.
HTML로 정적 파일을 생성하여 Webserver
사용자 정의 URL에 제공합니다.
그리 어렵지 않을 것입니다.
감사,
이 플러그인이 무료이며 사용자 정의가 가능한지 확인하십시오 https://marketplace.magento.com/vsourz-html-sitemap.html
프로그래밍없이 작업을 수행하는 데 도움이되는 Sitemap 확장 ( https://marketplace.magento.com/fme-advanced-sitemap-generator.html )을 사용하거나이 기사를 살펴볼 수 있습니다. https : //www.fmeextensions.com/blog/generate-google-optimized-sitemap-xml-in-magento-2/