木材 - 列出类别及其帖子

mfo*_*fos 3 wordpress categories timber

我有一个带有自定义分类法(“vehicles_category”)的 CPT(“车辆”)

我有 4 个类别(建筑、道路、废物、其他),每个类别都分配了许多职位。

我试图列出每个类别,并在下面分配给它们的帖子,所以..

Construction
     Post 1    
     Post 2     
     etc
Road
     Post 6
     Post 9
     etc
Run Code Online (Sandbox Code Playgroud)

一直在与这个作斗争。

我有这个来获取帖子...

$context['vehicles'] = Timber::get_posts([
    'order'     => 'ASC',
    'post_type' => 'vehicles',
    'posts_per_page' => -1,
    'paged' => $paged,
]);
Run Code Online (Sandbox Code Playgroud)

这是为了获取类别......

$context['categories'] = Timber::get_terms('vehicle_category');
$context['posts'] = $context['vehicles'];
Run Code Online (Sandbox Code Playgroud)

到目前为止,我的树枝文件中有这个......

{% for category in categories %}
    {% if category.count >= 1 %}
        <li>
            <a href="{{site.url}}/vehicles/{{ category.slug }}">{{ category.title }}</a>
        </li>
    {% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

但它只输出类别,因为我缺少输出帖子的位,但我尝试的一切都不起作用。

有任何想法吗?谢谢

mfo*_*fos 7

好吧,确实想太多了,所以退了一步。

$context['categories'] = Timber::get_terms('vehicle_category');
Run Code Online (Sandbox Code Playgroud)

Vehicle_category 是我的自定义分类法。

{% for category in categories %}
    <h1>{{category.name}}</h1>

    <div class="c-vehicle--list">

                {% for post in category.posts %}
                    <div class="c-vehicle--list__item">

                            <a href="{{ site.url }}/vehicles/{{ post.slug }}" title="{{ post.title }}">
                                <img src="{{TimberImage(post.vehicle_image).src('postMedium')}}" alt="{{ post.title }}">
                                <span>{{ post.title }}</span>
                                <span>{{ post.terms('vehicle_category') | join(', ') }}</span>
                            </a>

                    </div>
                {% endfor %}
    </div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

因此,只需循环出我的自定义分类中的类别,然后列出post in category.post与该类别相关的帖子即可。