3

我终于给 Stash(EE 2.5.3 上的 2.3.5 版本)一个项目,看看它是否像大家说的一样好。

我尽可能多地关注文档,并在页面标题处设置存储,如下所示:

{exp:channel:entries channel="homepage" limit="1" dynamic="no"}
{exp:stash:set_list name="homepage"}
    {stash:cf_homepage_main_intro}{cf_homepage_main_intro}{/stash:cf_homepage_main_intro}
    {stash:cf_homepage_strapline}{cf_homepage_strapline}{/stash:cf_homepage_strapline}

    {cf_homepage_contact_info}
        {stash:mx_pinterest}{mx_pinterest}{/stash:mx_pinterest}
        {stash:mx_facebook}{mx_facebook}{/stash:mx_facebook}
        {stash:mx_twitter}{mx_twitter}{/stash:mx_twitter}
        {stash:mx_tel}{mx_tel}{/stash:mx_tel}
        {stash:mx_email}{mx_email}{/stash:mx_email}
        {stash:mx_address}{mx_address}{/stash:mx_address}
    {/cf_homepage_contact_info}
{/exp:stash:set_list}
{/exp:channel:entries}

然后在模板的其余部分中,我尝试按如下方式调用这些值:

{exp:stash:homepage:mx_tel}

然而,我什么也得不到。

如果我直接输出字段名称,它们工作正常,我还打开了调试,我可以看到 stash 设置值的点,一切看起来都很好,但是调试器报告以下内容:

*存储:检索到的主页:具有价值的 mx_email*

我对从这里去哪里有点不知所措......有人有任何指示吗?

谢谢,

卡尔

4

5 回答 5

4

啊! 我在您的问题中看到您正在尝试从同一模板中调用变量。因此,您遇到了解析顺序问题。您需要将process="end"参数添加到您的exp:stash:get_listorexp:stash:get标记中。并阅读我关于模板部分的文章

于 2012-11-11T20:01:08.007 回答
3

嗯,我想也许你的语法有误。尝试:

{exp:stash:get_list name="homepage"}
  Telephone: {mx_tel}
{/exp:stash:get_list}

此外,如果您只检索一项,我会跳过使用 set_list 并仅使用 set 作为单独的变量。这两件事都有效,但我认为它更直观..?

于 2012-11-11T16:59:57.400 回答
3

使用 set_list、append_list 和 prepend_list 时需要使用 Stash 的 get_list 标记对。

根据文档,您使用的是一个 Stash 快捷方式,它与 stash:get 相同,但与 stash:get_list 不同。

使用 get_list:

https://github.com/croxton/Stash/tree/dev#expstashget_list-tag-pair

没有捷径:

https://github.com/croxton/Stash/tree/dev#shortcut-tags(用于设置/获取)

此外,您正在使用的快捷方式实际上是在使用context

{exp:stash:your_context:your_var_name}

注意上面标签中的“your_context”

于 2012-11-11T19:21:17.057 回答
3

问题是我试图在同一个模板中调用 {get} ,因此需要在标签之后添加 process='end' 。

另外,仅供参考 - 这就是我正在使用的:

{exp:stash:set name="cf_homepage_main_intro"}{cf_homepage_main_intro}{/exp:stash:set}

然后将其恢复(使用快捷方式标签):

{exp:stash:cf_homepage_main_intro process='end'}

任务完成!

于 2012-11-11T20:03:58.823 回答
2

{exp:stash:set_list name="homepage"} {exp:channel:entries channel="homepage" limit="1" dynamic="no"}

存储在循环内是否重要,就像在解析顺序的东西中一样,存储不是先出现的吗?

于 2012-11-11T18:42:11.113 回答