【问题标题】:Movable Type archive pages – show all entries in a top-level category or its subcategoriesMovable Type 存档页面 - 显示顶级类别或其子类别中的所有条目
【发布时间】:2014-10-11 02:05:08
【问题描述】:

我有一个机器翻译博客。最初它有一堆类别:

  • 苹果
  • 香蕉
  • 葡萄

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

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

所有新编写的条目都已添加到顶级类别和任何适当的子类别中。但是,旧条目只标记了它们所属的原始类别,现在是一个子类别。因此,旧条目不会出现在顶级类别(动物/、蔬菜/或矿物/)的类别索引页面中。

我们不想手动编辑每个旧条目来添加正确的顶级类别。有没有办法告诉类别存档/索引页面包含 TLC 或其子类别之一中的任何条目,而不复制条目?换言之,“矿物”应列出矿物、铁、铜或银中的唯一条目。

还有其他建议吗?

【问题讨论】:

    标签: movabletype


    【解决方案1】:

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

    include_subcategories="1"
    

    到您的“mt:Entries”循环,就像在这个示例中一样:

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

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

    【讨论】:

    • 太棒了,这成功了!感谢您的回答。 :)
    • 仅供参考 - 起初这似乎只适用于“动物”,我已经明确地将一个条目直接添加到“动物”顶级类别中。没有直接分配任何条目的“矿物”页面仍然没有生成。我必须直接向“Minerals”TLC 显式添加一个条目,以让 MT 生成页面。该页面一旦生成,就会包含所有预期的子类别条目。
    • @MihaiBocsaru,我将编辑您的答案以包含此发现。
    • @ElBel 啊,这是一个好点。我相信 Movable Type 甚至不会为没有条目的类别解析模板,因此模板代码的更改无关紧要。我会为此提出功能请求。
    • 我用来强制空类别生成页面的技巧是创建一个名为“Trick”的条目并将其标记为“@trick”。然后,在 mt:Entries 循环中,我使用以下内容过滤掉该条目:....
    【解决方案2】:

    更新: 正如 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>
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-25
      • 2017-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多