Hubspot (Jinja):将变量添加到博客数据以在 for 循环中输出

Hubspot (Jinja): Adding variables to blog data for output in for loop

Hubspot 内置于 jinja 中,并提供有限的自定义 jinja 库供其开发人员使用。没有服务器端访问可用,python 在它的模板中不起作用

您好,

我想知道是否可以向博客数据添加变量。

目前要构建博客列表页面,您需要设置一个 for 循环

`{% for content in contents %}

{% endfor %}`

然后您将调用在博客的不同部分调用的变量 posts

{{ content.foo ))

这些变量适用于已经并且始终包含在 hubspot 博客中的元素 post,例如

作者 日期 标题 概括 绝对 link 等等

但是是否可以添加这些变量。例如,假设我在博客 post 模板中添加了一个图像模块。有没有办法在列表页面上访问它?

我实际上想做的是允许选项根据我在博客 post 模板上设置的选择模块在一列或两列中显示任何列表项。如果在创建博客时 post 选择 1 列或 2 列,则列表页面上循环内的包装器中的 class 将相应更改。

我遇到的问题是,虽然选择模块值可用于列表页面模板(在博客模板的 hubl 模板模块中,而不是在博客 post 模板中),并且选择下拉在博客编辑模板​​上,可以进行选择并保存,列表页面只识别默认选项,不识别博客编辑器中选择的选项。

写到一半我决定将选择模块从主博客模板移动到博客页面模板,现在用于选择的变量对列表页面不可用。将选择模块保留在博客页面模板之外的主博客模板中,可以使选择变量可用,但不能由博客单独使用。因为在博客上选择的选项不会按博客保存,所以只有默认选项可用。

如果有一种方法可以将它添加到内容变量中,这样你就可以做类似的事情,那就太好了

{{ content.widget_data.foo.value }}

在内容循环中,使博客的个人选择 post 可用。

有什么想法吗?

我回答了我自己的问题。

我使用了开发者信息(我不得不使用代码美化器和页面内搜索),但我在每个 post.

的数据中找到了选择小部件

我原以为它会是这样的

{{ content.widget_data.foo.value }}

因为这是它在页面上的工作方式(减去内容。),但它最终变成了

{{ content.widgets.foo.body.value }}

它现在正在输出每个 post 所做的选择。

如果这对其他人有帮助,我想提一下,选择模块实际上放在博客页面模板中(不是主博客模板或列表模板)。

这适用于任何模块,自定义或其他。您只需在数据中找到它并相应地定位即可。

我的数据如下:

"contents": {
"objects": [{
"widgets": {
"columns": {
"css": {},
"child_css": {},
"name": "foo",
"type": "choice",
"label": "Choose Columns",
"smart_type": null,
"id": "columns",
"body": {
"value": "col-wrap-2"
}
}
},