使用木材嵌套块和多重继承

时间:2018-05-04 09:19:50

标签: inheritance twig block multiple-inheritance timber

我一直在努力关注this它并没有像我想的那样工作。我想替换“标题”块中的内容或添加它,但我只是获得了在single.twig中建立的标题。

base.twig:

<!-- Stuff -->

    {% block content %}
        Sorry, no content
    {% endblock %}

<!-- More Stuff -->

single.twig:

{% extends "base.twig" %}

{% block content %}

<!-- Stuff-->               
{% block headline %}                    
    <h1 class="article-h1">
        <a href="{{post.link}}">{{ post.title }}</a>
    </h1>
{% endblock headline %}             

<!-- More Stuff-->  

{% endblock %}

单后mypost.twig:

{% extends "single.twig" %}

{% block headline %}
    {{parent()}}
    <h1>Custom Header</h1>
{% endblock headline %}

1 个答案:

答案 0 :(得分:0)

我发现了为什么它不起作用。

在single.php中,Timber :: render正在寻找$ post-&gt; ID和$ post-&gt; post_type,并且它没有寻找$ post-&gt; post_name。

现在有效。

我一直在摆弄这么多,以至于我不记得它是否在原始的Timber的Starter Theme中,但这里是代码以防其他人遇到同样的问题。< / p>

$context = Timber::get_context();
$post = Timber::query_post();
$context['post'] = $post;
$context['sidebar'] = Timber::get_sidebar('sidebar.php');

if ( post_password_required( $post->ID ) ) {
    Timber::render( 'single-password.twig', $context );
} else {
    Timber::render( array( 'single-' . $post->post_name . '.twig', 'single-' . $post->ID . '.twig', 'single-' . $post->post_type . '.twig', 'single.twig' ), $context );
}