使用Stash的空白输出

时间:2012-11-11 16:17:32

标签: expressionengine

我终于给了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,值为*

我有点不知道从哪里开始......有没有人有任何指针?

谢谢,

卡尔

5 个答案:

答案 0 :(得分:4)

啊!我在你的问题中看到你试图从同一个模板中调用vars。所以你遇到了一个解析订单问题。您需要将process="end"参数添加到exp:stash:get_listexp: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”}

存储在循环中是否重要,如在解析顺序中,是不是先存储?