按ID显示CPT UI帖子

时间:2019-02-07 09:32:03

标签: html wordpress posts timber

(对不起,我的英文,我正在尝试不使用Google翻译^^)

所以..我创建了一个CPT UI“ projets”,其中实际上包含2个帖子(FMXD和Siemens),您可以在这里看到:

SETS

我希望当我单击FMXD时,我有一个第一页仅显示FMXD的post_thumbnail。像这样: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的内容,而不是两者都显示。

很抱歉,它已经退出了很长时间,但是我真的需要您的帮助,我真的很受阻。...

1 个答案:

答案 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 %}