Fishpig Magento - 为自定义 post 类型术语视图设置模板

Fishpig Magento - Set a template for custom post type term view

正在尝试使用 Fishpig Wordpres/Magento 插件专门为特定术语设置模板。

我有一个名为 'Business' 的自定义 post 类型,并且有特定于此 post 类型的类别。

在 /app/design/frontend/themes/default/layout/wordpress.xml 中,我有以下呈现我所有类别术语的模板:

<wordpress_term_view>
    <reference name="content">
        <block type="wordpress/term_view" name="wp.term" template="wordpress/term/view.phtml">
            <block type="wordpress/post_list" name="wordpress_post_list" as="post_list" template="wordpress/post/list.phtml" />
        </block>
    </reference>
</wordpress_term_view>

但我需要的是针对特定类别的不同模板 'executive interviews'。

你可以在这里看到这个 http://staging-ce.beanmediagroup.com.au/business/category/executive-interviews/

我试过的

我知道您可以使用“”之类的设置独特的页面视图,但这不适用于术语 ID。

我也知道您可以使用 /wordpress/post/list/renderer/business.phtml 之类的东西为自定义 post 类型设置自定义 post 列表模板,但这不适用于条款。

如有任何帮助,我们将不胜感激。

如果你检查这个文件:app/code/community/Fishpig/Wordpress/controllers/TermController.php viewAction 你可以看到它正在添加自定义布局句柄:

'wordpress_' . $term->getTaxonomyType() . '_view_' . $term->getId(),
'wordpress_' . $term->getTaxonomyType() . '_' . $term->getId()

这意味着,在您的 app/design/frontend/themes/default/layout/wordpress.xml 中,如果您想要的类别的 ID 是 2,例如,您可以添加特定于这个类别:

<wordpress_category_view_2> <reference name="content"> <block type="wordpress/term_view" name="wp.term" template="wordpress/term/view.phtml"> <block type="wordpress/post_list" name="wordpress_post_list" as="post_list" template="wordpress/post/list/renderer/business.phtml" /> </block> </reference> </wordpress_category_view_2> //OR <wordpress_category_2> <reference name="content"> <block type="wordpress/term_view" name="wp.term" template="wordpress/term/view.phtml"> <block type="wordpress/post_list" name="wordpress_post_list" as="post_list" template="wordpress/post/list/renderer/business.phtml" /> </block> </reference> </wordpress_category_2> //OR <STORE_default_wordpress_category_view_2> <reference name="content"> <block type="wordpress/term_view" name="wp.term" template="wordpress/term/view.phtml"> <block type="wordpress/post_list" name="wordpress_post_list" as="post_list" template="wordpress/post/list/renderer/business.phtml" /> </block> </reference> </STORE_default_wordpress_category_view_2> //OR <STORE_default_wordpress_category_2> <reference name="content"> <block type="wordpress/term_view" name="wp.term" template="wordpress/term/view.phtml"> <block type="wordpress/post_list" name="wordpress_post_list" as="post_list" template="wordpress/post/list/renderer/business.phtml" /> </block> </reference> </STORE_default_wordpress_category_2>

只需将 2 更改为您的类别 ID。

zokibtmkd 的 post 非常正确,他们找到布局句柄的方法是一个很好的方法(通过代码直到找到答案),但是你不需要重新定义所有的XML 块并且可以只引用它们。此外,您不需要通过 XML 设置 post 列表渲染器模板,因为最新版本的扩展会自动选择它。

首先让我们看看如何更改术语的 post 列表包装器模板(默认为 wordpress/term/view.phtml)。

<!--
/**
 * Change the wrapper template for 'category' with an ID of 2
 * Change '2' to the ID you wish to target
 * Change 'category' to the taxonomy name
 **/
-->
<wordpress_category_view_2>
  <reference name="wp.term">
    <action method="setTemplate">
      <template>wordpress/term/custom-template.phtml</template>
    </action>
  </reference>
</wordpress_category_view_2>

现在让我们看看如何更改 post 列表呈现模板。

如 zokibtmkd 所述,可以通过 XML 执行此操作,但最新版本的 Magento WordPress 集成不需要此操作。相反,扩展将采用 post 类型(在这种情况下,我相信 post 类型是 'business'),然后在 wordpress/post/list/renderer 目录中查找此名称的模板. 要更改此 post 类型的 post 列表模板,请在 wordpress/post/list/renderer/business.phtml

处创建一个文件

最后,如果您想 更改 'business' post 类型的 post 视图模板,您可以在 wordpress/post/view/business 处创建一个文件.phtml.