首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从全球数据设置前沿数据11

从全球数据设置前沿数据11
EN

Stack Overflow用户
提问于 2022-07-16 00:25:16
回答 1查看 90关注 0票数 0

我想使用wordpress创建带有11ty的静态博客。我获取帖子(文件_data/posts.js):

代码语言:javascript
复制
const EleventyFetch = require("@11ty/eleventy-fetch");

module.exports = async function() {
  const url = "http://www.some-url.com/wp-json/wp/v2/posts?per_page=100";
  const maxPages = 100;
  let page = 1;

  let responses = [];

  while (page <= maxPages) {
    const urlWithPage = `${url}&page=${page}`
    try {
      data = await EleventyFetch(urlWithPage, {
        duration: "1d",
        type: "json"
      })
    } catch(e) {
      break
    }

    responses.push(data);

    page++
  }

  responses = responses.flat(2);
  return responses;
};

每个帖子中都有一系列与这些帖子相关的标签。例如,第一篇文章的标签:

代码语言:javascript
复制
tags: [ 'my_tag' ]

我有一份档案,把所有的帖子都用这个正面的东西呈现出来:

代码语言:javascript
复制
---
layout: layouts/post.njk
title: Index
description: Starter pack for site.
pagination:
  data: readyPosts
  size: 1
  alias: tag
tags: tag.tags
permalink: "/{{ tag.slug | slug }}/"
---

{{ tags | log }}

当我试图从post数据中设置标记并记录它时,tag.tags被解释为一个字符串。

代码语言:javascript
复制
[ 'posts', 'tag.tags' ]

我需要的结果是:

代码语言:javascript
复制
[ 'posts', 'my_tag' ]

怎么做?

EN

回答 1

Stack Overflow用户

发布于 2022-08-29 01:58:20

可以使用eleventyComputed根据分页对象设置tags键。

使用模板Javascript数据文件,我们可以使用Javascript函数设置标记。您需要根据您的文件结构来命名这些文件。有关更多信息,请参考文档。

假设您的模板名为posts.njk,则在它旁边创建一个posts.11tydata.js文件。

代码语言:javascript
复制
// posts.11tydata.js
module.exports = {
  eleventyComputed: {
    tags: (data) => {
      return data.tags.slice().concat(data.tag.tags.slice())
    },
  },
}

这将结合在你前面设置的任何标签和数据中的标签。如果您希望所有的帖子都有“post”标签,那么将其设置在模板中。

posts.njk (或其他文件名)中:

代码语言:javascript
复制
---
# ...
pagination:
  data: readyPosts
  size: 1
  alias: tag
tags: ["posts"]
permalink: "/{{ tag.slug | slug }}/"
# ...
---

请注意,此方法collections 实际上不会将您的标记/页面添加到对象。这是由于十一中的限制(参见第一个注意事项在这页上)。但是,访问模板中的tags密钥将与预期的完全相同。如果您确实需要集合,可以使用集合API自己添加它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73000697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档