【问题标题】:Apostrophe-pages tag, type filterApostrophe-pages 标签,类型过滤器
【发布时间】:2021-07-15 20:20:21
【问题描述】:

我正在创建一组不同的模板,以允许用户创建不同类型的页面,就像根据内容使用不同的模板一样。这就是为什么我想创建一个过滤器来帮助我按类型过滤页面并使用每个页面上包含的不同标签。

【问题讨论】:

  • 在我看来,您对将这些页面排列在树中并不是很感兴趣,并且希望您和公众都按类型和标签浏览它们。那是对的吗?如果是这样,您可能应该使用片段而不是页面。
  • 没错!假设我有一个博客,用户可以创建不同的类型的帖子(意味着不同的帖子模板)。用户希望能够通过 6/7 不同的标准找到帖子,因此出于 UX 原因,标签比树更好。其中一个标准是 type,在这种情况下,它对应于 post 的类型,例如文字帖子、图片帖子或视频帖子。我能否 (1) 拥有一个包含/列出所有类型帖子的“所有帖子” 视图页面? (2) 在相同的过滤器面板中使用相同的标准过滤该视图/帖子列表,甚至每个“帖子”类型都有一个?

标签: apostrophe-cms


【解决方案1】:

我只想在creating UI with apostrophe-pieces-pages 的以下教程中添加它,在描述如何在创建过滤器时列出标签时,url 字段缺少一部分。它应该如下:

<ul class="tag-filters">
  {% for tag in data.piecesFilters.tags %}
    <li><a href="{{ data.page._url | build({ tags: tag.value }) }}">{{ tag.label }}</a></li>
  {% endfor %}
</ul>

【讨论】:

    【解决方案2】:

    由于您的内容不是在树中结构化,而是由其他属性动态过滤,因此您的正确方向是使用片段而不是页面。见reusable content with pieces

    特别是,您需要查看该教程的filtering the list of people 部分,该部分演示了如何基于任何架构字段创建过滤器,包括“选择”类型的字段。 “选择”类型的字段非常适合您独特的“博客模板”。您可以使用该字段通过 nunjucks 从您的 apostrophe-pieces-pages 子类的主 show.html 模板中决定将哪个文件发送到 include

    继续阅读,您将了解如何使用 AJAX 为这些过滤器提供动力,这样它们就不需要刷新整个页面,但仍支持 SEO 并构建浏览器历史记录等。

    编辑添加:与上述教程链接的一些最相关的材料在文章creating UI with apostrophe-pieces-pages中。

    【讨论】:

    • 非常感谢!我正在努力完成这项工作。我只是想知道对于 including 部分的文件是否取决于所选模板,我可以对任何页面执行此操作还是应该只是宏?有没有关于如何使用宏的教程?找不到!
    • 你想要 Nunjucks 文档:mozilla.github.io/nunjucks
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-18
    • 2020-03-18
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    相关资源
    最近更新 更多