可移动类型存档页面 - 显示顶级类别或其子类别中的所有条目

时间:2014-10-11 02:05:09

标签: movabletype

我有一个MT博客。最初它有很多类别:

  • 苹果
  • 香蕉
  • 葡萄

我们扩展了内容并创建了一些父类别:

  • 动物
  • 蔬菜
    • 苹果
    • 香蕉
    • 葡萄
  • 矿物

所有新写入的条目都已添加到顶级类别和任何子类别中。但是,旧条目仅标记为它们所属的原始类别,现在是子类别。因此,旧条目不会出现在顶级类别(Animal /,Vegetable /或Mineral /)的类别索引页面中。

我们不希望手动编辑每个旧条目以添加正确的顶级类别。有没有办法告诉类别存档/索引页面包含在TLC或其子类别中的任何条目,而不重复条目?换句话说,“矿物”应列出矿物,铁,铜或银的独特条目。

还有其他建议吗?

2 个答案:

答案 0 :(得分:4)

如果您在“条目列表”(类别存档)上下文/模板中,则应该足以添加:

include_subcategories="1"

到你的'mt:Entries'循环,就像这个样本一样:

<mt:Entries include_subcategories="1">
...
</mt:Entries>

您可能必须直接向父/顶级类别添加至少一个条目才能生成页面。

答案 1 :(得分:3)

<强>更新 正如Mihai指出的那样,你实际上可以使用include_subcategories="1"修饰符来做到这一点。经过测试和验证,无需插件。保存我的解决方案以获得更复杂的模块,该模块需要完全从其他类别中提取条目。 ; - )


默认情况下这很困难,因为Movable Type的条目列表模板会自动继承从中提取条目或页面的特定上下文。

一种可能的解决方案是使用Out Of Context插件,它会为您提供一个新的OutOfContext块标记,您可以使用该标记来突破当前限制您从特定类别中提取条目的上下文

您的代码可能类似于:

<mt:CategoryLabel setvar="cat_label">

<mt:OutOfContext>
  <mt:Entries category="$cat_label" include_subcategories="1" lastn="0">
    <!-- entry code here -->
  </mt:Entries>
</mt:OutOfContext>

我没有测试这个特定的例子,所以如果你尝试的话请告诉我!