Magento : 외부 적으로 상대 URL을 카테고리로 얻습니다
-
21-08-2019 - |
문제
웹 사이트를 만들고 / Shop / Subdirectory에 Magento를 설치했습니다. 최상위 카테고리를 Magento가 아닌 사이트의 메뉴에 통합하여 카테고리로 직접 탐색 할 수 있습니다. 이를 위해서는 카테고리 이름과 URL이 필요합니다.
Magento의 범주는 다음과 같습니다.
- 템플릿
- 색깔
- 주제
- 일반적인
- 다른 제품들
먼저 템플릿 최상위 수준 아래에 카테고리 목록을 가져와야하므로 다음 코드를 작성했습니다. Magento와의 통합으로 첫 번째 시도이므로 온화하십시오 :-) :
<?php
require_once dirname(__FILE__).'/shop/app/Mage.php';
umask(0);
Mage::app('default');
$helper = Mage::helper('catalog/category');
$collection = $helper->getStoreCategories();
foreach ($collection as $catalogArray) {
if ($catalogArray->getName() == "Templates") {
foreach (explode(",", $catalogArray->getChildren()) as $category) {
$_category = Mage::getModel('catalog/category')->load($category);
if($_category->getIsActive()) {
$caturl = $_category->getUrl();
$catname = $_category->getName();
}
echo "<pre>";
var_dump($caturl);
echo "</pre>";
echo "<pre>";
var_dump($catname);
echo "</pre>";
}
}
}
?>
이것은 이름과 범주를 올바르게 가져 오지만 URL의 IT 리턴은 절대적인 전체 URL입니다.http://example.com/shop/templates/theme.html".
첫째, Magento에서 상대 URL을 검색하려면 어떻게해야합니까?
둘째, 생성 된 URL은 Web/Unsecure/Base_url 설정을 http://example.com/shop/. 이것을 대신 {{base_url}}로 설정하면 (가상 호스팅 기반 SVN 작업 사본을 사용하기 때문에 개발 중에 선호하는 경우), / shop / part가 누락되었습니다.http://example.com/templates/theme.html".
이유가 있습니까?
해결책
시스템> 구성> 웹에서 설정을 통해 모든 요구 사항을 달성 할 수 있다고 생각합니다.
가장 먼저 시도하는 것은 Base URL (필요한 경우 안전하고 안전하지 않음)을 / (전방 슬래시)로 설정 한 다음 시스템> 캐시 관리> 카탈로그 재 작성 URL 재 작성입니다.
그래도 작동하지 않으면 설정을 가지고 놀면 작동 할 수 있습니다. 그래도 Google베이스 피드 등에 Magento가 상대적 URL을 넣을 것입니다. 그러니 생산에서하지 마십시오.
내 개발자 사본은 작동 중이며 여기서는 액세스 할 수 없으므로 시도 할 수 없습니다.
또한 위의 스크립트의 경우 다음을 시도 할 수 있습니다.
$url = "/shop/" . $_category->getUrlKey() . '.html';
(끝에 HTML 비트가 필요하지 않을 수 있습니다. 구성에 따라 다릅니다)