0

我对 PHP、Wordpress 和 Timber 完全陌生。我有一个名为Projects的自定义帖子类型,它使用帖子存档模板,我要疯狂地创建一个特定的Projects 存档模板,这样我就可以为其设置不同的布局。

这就是我的 index.twig 的样子

{% extends "layouts/base.twig" %}

{% block content %}
  <div class="uk-child-width-1-3@m" uk-grid uk-scrollspy="cls: uk-animation-fade; target: > div > .uk-card; delay: 500; repeat: false">
{% for post in posts %}
    {% include "tease-post.twig" %}
{% endfor %}
  </div>
{% endblock %}

这是tease-post.twig

{% block content %}
<div>
    <div class="uk-card uk-card-default">
            <div class="uk-card-media-top">
                    <a href="{{post.link}}"><img src="{{post.thumbnail.src('full')}}" alt=""></a>
            </div>
            <div class="uk-card-body">
                    <h3 class="uk-card-title"><a href="{{post.link}}" class="uk-button uk-button-text">{{post.title}}</a></h3>
                    <p>{{post.get_preview(25,false,false,true)}}</p>
            </div>
            <div class="uk-card-footer">
                    <a href="{{post.link}}" class="uk-button uk-button-text">Read more</a>
            </div>
    </div>
</div>
{% endblock %}

知道它是如何工作的吗?找不到任何相关文档..

4

1 回答 1

1

根据您要实现的目标,有一些不同的方法。似乎最简单的是...

{% extends "layouts/base.twig" %}

{% block content %}
    <div class="uk-child-width-1-3@m" uk-grid uk-scrollspy="cls: uk-animation-fade; target: > div > .uk-card; delay: 500; repeat: false">
    {% for post in posts %}
        {% include "tease-'~ post.type ~'.twig" %}
    {% endfor %}
    </div>
{% endblock %}

然后,您可以创建一个名为tease-project.twig(假设 `project 是您的自定义帖子类型的 slug 的名称)的文件,它可能看起来像这样......

{# tease-project.twig #}
<h2>My cool project is... {{ post.title }}</h2>

如果您想对 CPT 的特定存档页面做一些特别的事情......

检查您的archive.php文件,如果您使用的是入门主题,它应该加载一个名为的文件archive-projects.twig(假设这projects是自定义帖子类型的名称)。

逻辑是完全可定制的,因此您可以.twig根据情况加载所需的任何文件

于 2017-04-12T04:24:41.640 回答