(对不起,我的英文,我正在尝试不使用Google翻译^^)
所以..我创建了一个CPT UI“ projets”,其中实际上包含2个帖子(FMXD和Siemens),您可以在这里看到:
我希望当我单击FMXD时,我有一个第一页仅显示FMXD的post_thumbnail。像这样:
如您所见,我的页面上显示的是FMXD和西门子,但我不明白为什么...
实际上,我有一个single-projets.php:
<?php
/*
Template Name: Projets
Template Post Type: post, page, product, projets
*/
$context = Timber::get_context();
$posts = Timber::get_posts( array(
'post_type' => 'projets',
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC',
) );
$context['posts'] = $posts;
Timber::render( [ 'single-projets.twig'], $context );
?>
和一个projets.twig:
<div class="container-fluid">
{% for post in posts %}
<div class="row">
<div class="imgProjets">
<img src="{{ post.thumbnail.src }}" alt="">
</div>
<div class=" offset-9 col-3 title">
<a href="{{ post.link }}">
{{ post.title }}
</a>
</div>
</div>
<div class="row">
<div class="offset-9 col-3">
{{ post.meta('clients') }}
</div>
</div>
<div class="row">
<div class="offset-9 col-3 bg-light text-dark">
See the projects
</div>
</div>
{% endfor %}
</div>
然后,我要单击“查看项目”,并查看FMXD或Siemens的内容,而不是两者都显示。
很抱歉,它已经退出了很长时间,但是我真的需要您的帮助,我真的很受阻。...
答案 0 :(得分:1)
这是您可能希望在archive-projets.php
中使用的代码,而不是在单个帖子的模板中使用的代码。
此部分:
$posts = Timber::get_posts( array(
'post_type' => 'projets',
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC',
) );
$context['posts'] = $posts;
正在获取所有projets
个帖子,并将它们传递到视图以循环显示。
您可以将整个零件替换为:
$context['post'] = new Timber\Post();
在Twig视图中根本不需要循环,因为只有一个帖子可以渲染。因此,只需删除{% for post in posts %}
和相应的{% endfor %}
。