몇 가지 다른 Magento 사이트의 페이지에서 특정 범주의 제품 모음을 얻고 있습니다. 컬렉션을 얻는 코드는 다음과 같습니다.
$category = new Mage_Catalog_Model_Category();
$category->load($id);
$collection = $category->getProductCollection();
$collection->addAttributeToSelect('*');
$collection->addAttributeToFilter('status', 1);
$collection->addFieldToFilter(array(array('attribute'=>'visibility', 'neq'=>"1" )));
$collection->getSelect()->limit(12);
foreach ($collection as $shopProduct) :
echo $shopProduct->getProductUrl();
endforeach;
내 문제는 우리가 실행중인 Magento 사이트 중 하나 ProductUrl()
에서 페치되고있는 URL이 같지 http://www.my site.com/catalog/product/view/id/2309/s/shopcat/category/373/
않은 URL이라는 것 http://www.site.com/shopcat/product-url-key.html
입니다. 그러나 다른 모든 사이트에는 원하는대로 표시됩니다.
이것이 왜 그런지 아는 사람이 있습니까? 감사! 나는 getUrlPath()
너무 사용하려고했지만 아무것도 반환하지 않았다. 나는 이런 식으로 뭔가를 해결할 수 있다는 것을 알고 <?php echo $this->getBaseUrl().$shopProduct->getUrlKey().".html"; ?>
있지만 그 방법은 약간 비효율적입니다!
21/03/14 편집 : 여전히이 문제가 있습니다. getProductUrl()
사이트의 일부 템플릿 파일에서 원하는 URL을 검색하지만 다른 사이트에서는 검색하지 않는 것을 깨달았습니다 . 예를 들어 홈페이지에 하나의 컬렉션을로드하고 있으며 원하는 URL을 제공합니다. 그러나 getProductUrl()
카테고리 뷰에서 동일한 코드로 원하는 URL을 제공하지 않습니다.