2015-01-28 3 views
4

나는 Magento's Fishpig extension을 탐색 중이 었으며 블로그 게시물 & 블로그 카테고리를 magento의 카테고리에 바인딩하는 흥미로운 방법을 발견했습니다. 그러나 나는 마젠타 카테고리 페이지의 프론트 엔드를 보여줄 방법이 없습니다.fishpig를 사용하여 magento 카테고리 페이지에 연결된 블로그 게시물/블로그 카테고리를 표시

작성한 기능이 Fishpig module 인 것 같습니다. 나는 ... 카테고리/view.phtml에이 코드를 추가하여 카테고리 페이지에 게시물을 표시하는 것이 가능하다는 것을 발견

<catalog_category_view> <reference name="left"> <block type="wordpress/post_associated" name="wordpress_posts_associated" template="wordpress/post/associated.phtml" after="-"> <action method="setTitle" translate="title" module="wordpress"> <title><![CDATA[Related Blog Posts]]></title> </action> <action method="setEntity"> <type><![CDATA[category]]></type> </action> </block> </reference> </catalog_category_view>

답변

0

:

나는 다음과 같은 코드를 사용하여 뭔가를 시도했다 :

<?php echo Mage::getSingleton('core/layout') 
->createBlock('wordpress/sidebar_widget_posts') 
->setTemplate('wordpress/sidebar/widget/categoryposts.phtml') 
    ->toHtml() ?> 

이렇게하면 카테고리 페이지에 대한 모든 게시물 목록을로드 할 수 있습니다. 그러나 필요에 맞게 categoryposts.phtml을 변경해야합니다. 도움이 되었으면합니다!

+0

아니,이 작동하지 않습니다. 나는 당신의 코드가 WordPress 카테고리에 대한 최근 게시물을 추가하는 것이라고 생각합니다. 내 질문은 magento 범주에 연결된 블로그를 표시하는 것입니다. –

+0

예 - 이것이 내 코드의 기능입니다. Magento 백엔드에서 협회에 지정된 카테고리의 게시물 만 표시하겠습니까? 따라서 관련 카테고리를 선택하려면 코드에 필터를 추가해야 할 수도 있습니다. – sonzvenson

+0

예, magento의 카테고리와 관련된 게시물 만 표시하고 싶습니다. 당신의 도움을 주셔서 감사합니다. 내 요구 사항에 따라 수정을 할 것입니다 –

-1

다른 답변의 코드는 사이드 바 위젯에 전체 블로그의 가장 최근 게시물을 표시합니다. 이는 질문에서 묻지 않습니다.

블로그 게시물을 Magento 카테고리와 연결할 수도 있지만 현재 표시 할 수 없습니다. 이것은 잘못된 것처럼 들리므로 설명하겠습니다.

블로그 게시물을 Magento 카테고리에 연결하면이 두 항목을 실제로 연결하는 것이 아닙니다. 대신 블로그 게시물을 해당 카테고리의 모든 제품과 연결하는 빠른 방법입니다.

범주에 대한 직접 연관을 표시하려면 데이터베이스에서 연관을 검색하고 검색된 ID를 사용하여 수동으로 게시물 모음을 작성해야합니다.

2

카테고리와의 직접 연관을 표시하려면 데이터베이스에서 연관을 검색하고 검색된 ID를 사용하여 수동으로 게시물 모음을 만들어야합니다.

Bens 코멘트를 확장하면 도우미 이 (가) 연관성을 얻을 수 있습니다.

여기에 함수가 있습니다.

public function getAssociations($type, $objectId, $storeId = null) 

이 파일을 단계별로 실행하면 수행해야 할 작업을 파악할 수 있지만 아래에서 사용하는 예제를 쉽게 이해할 수 있습니다.

$_helper = Mage::helper('wordpress/associations'); 
$_category = $this->getCurrentCategory(); 
$_associations = $_helper->getAssociations('category/category',$_category->getId()); 
$_collection = Mage::getResourceModel('wordpress/post_collection') 
    ->addIsPublishedFilter(); 

이렇게하면 키가 WP 카테고리 ID이고 값이 Magento 내에서의 위치 인 배열이 반환됩니다.

다음으로 키를 값으로 바꿔야합니다.

경고array_flip을 사용하지 마십시오! 같은 위치에 카테고리가있는 경우 동일한 값을 가진 마지막 Oe 만 저장됩니다.

솔루션 약간 더러 우나 나중에 루프백하여 다시 사용할 수 있습니다.

if($_associations && $_collection->getSize()){ 
    $_wpIds = array(); 
    foreach($_associations as $_id => $_position){ 
     $_wpIds[] = $_id; 
    } 
} 

기능을 사용하여 컬렉션을 필터링 할 수 있습니다. addCategoryIdFilter($categoryId). 불행히도,이 배열을 받아들이지 않는 것 및 컬렉션에 여러 번 적용 할 경우 false를 반환합니다. 안타깝게도, 카테고리 ID 배열로 콜렉션을 필터링 할 수있는 함수가 모듈 내에없는 것 같습니다.

ID 필터는 문자열과 배열을 모두 허용해야하며 배열 인 경우 AND/OR 매개 변수를 정의 할 수 있어야합니다. 아마도 미래의 릴리스에 대한 무언가;)

+0

고마워요! 이것은 내가 있어야 할 곳으로 나를 데려 갔다. 나는 이것을 사용하여 끝냈다 : '$ _wordpressHelper = Mage :: helper ('wordpress/associations'); $ _associations = $ _wordpressHelper-> getAssociations ('category/post', $ _category-> getId()); addCategoryAndPostIdFilter (array_keys ($ _ associations), array());'addAllPublishedFilter() -> addCategoryAndPostIdFilter (array_keys ($ _ associations)); – leek

관련 문제