我终于给了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:RETRIEVED主页:mx_email,值为*
我有点不知道从哪里开始......有没有人有任何指针?
谢谢,
卡尔
答案 0 :(得分:4)
啊!我在你的问题中看到你试图从同一个模板中调用vars。所以你遇到了一个解析订单问题。您需要将process="end"
参数添加到exp:stash:get_list
或exp:stash:get
标记中。并阅读我的article about template partials!
答案 1 :(得分:3)
{exp:stash:get_list name="homepage"}
Telephone: {mx_tel}
{/exp:stash:get_list}
另外,如果你只检索一个项目,我会跳过使用set_list,只使用set来表示单独的变量。这两件事都有效,但我觉得它更直观..?
答案 2 :(得分: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”
答案 3 :(得分:3)
问题是我试图在同一个模板中调用{get},因此需要在标记后面的进程='end'。
另外,仅供参考 - 这就是我正在使用的内容:
{exp:stash:set name="cf_homepage_main_intro"}{cf_homepage_main_intro}{/exp:stash:set}
然后将其退出(使用快捷方式标记):
{exp:stash:cf_homepage_main_intro process='end'}
工作完成!
答案 4 :(得分:2)
{exp:stash:set_list name =“homepage”} {exp:channel:entries channel =“homepage”limit =“1”dynamic =“no”}
存储在循环中是否重要,如在解析顺序中,是不是先存储?