0

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

我有一个名为“业务”的自定义帖子类型,并且有特定于该帖子类型的类别。

在 /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>

但我需要的是针对特定类别“高管访谈”的不同模板。

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

我试过的

我知道您可以使用类似 '' 的方式设置唯一的页面视图,但这不适用于术语 ID。

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

任何帮助,将不胜感激。

4

2 回答 2

0

如果您检查此文件: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。

于 2015-09-28T11:31:18.357 回答
0

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

首先让我们看看更改术语的帖子列表包装模板(默认为 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>

现在让我们看看如何更改帖子列表渲染模板。

正如 zokibtmkd 所述,可以通过 XML 执行此操作,但是最新版本的 Magento WordPress 集成不需要这样做。相反,扩展程序将采用 post 类型(在这种情况下,我认为 post 类型是“business”),然后在 wordpress/post/list/renderer 目录中查找此名称的模板。要更改此帖子类型的帖子列表模板,请在 wordpress/post/list/renderer/business.phtml 创建一个文件

最后,如果您想更改“商业”帖子类型的帖子视图模板,您可以在 wordpress/post/view/business.phtml 中创建一个文件。

于 2015-09-29T09:22:31.880 回答