Ghost CMS中的Foreach循环返回null

时间:2014-11-10 23:12:38

标签: javascript handlebars.js ghost-blog

目前使用Ghost CMS设置一个简单的网站。默认情况下,主页附带一个通过foreach循环检索的帖子列表。我试图在帖子页面上重新创建它,但没有任何内容被吸引进来。

文件结构是:

/theme
/theme/index.hbs
/theme/post.hbs

适用于index.hbs的代码是:

{{#foreach posts}}
<article class="{{post_class}}">
    <header class="post-header">
        <h2 class="post-title"><a href="{{url}}">{{{title}}}</a></h2>
    </header>
    <section class="post-excerpt">
        <p>{{excerpt words="26"}} <a class="read-more" href="{{url}}">&raquo;</a></p>
    </section>
    <footer class="post-meta">
        {{#if author.image}}<img class="author-thumb" src="{{author.image}}" alt="Author image" nopin="nopin" />{{/if}}
        {{author}}
        {{tags prefix=" on "}}
        <time class="post-date" datetime="{{date format='YYYY-MM-DD'}}">{{date format="DD MMMM YYYY"}}</time>
    </footer>
</article>
{{/foreach}}

我在post.hbs页面上使用的略微剥离的版本是:

<aside class="timeline">
    {{#foreach posts}}
        <h4 class="post-title"><a href="{{url}}">{{{title}}}</a></h4>
        <section class="post-meta">
            {{author}}
            {{tags prefix=" on "}}
            <time class="post-date" datetime="{{date format='YYYY-MM-DD'}}">{{date format="DD MMMM YYYY"}}</time>
        </section>
    {{/foreach}}
</aside>

我的猜测是,我无法在帖子页面上发帖,但我不确定。

1 个答案:

答案 0 :(得分:0)

您无法遍历帖子页面上的所有帖子。帖子页面专门用于单个帖子。您可以创建自定义静态页面,虽然听起来像您想要的。

你想要做的是创建一个带有标题和页面网址的空白帖子(假设页面网址为blog.com/stuff)。将此帖子设为静态页面。然后在您的主题文件中,创建一个名为page-stuff.hbs的新文件(东西是静态页面的URL)。然后在这里你可以为帖子做foreach循环并抓住你想要的任何东西。