WordPress Timber получает сообщения произвольного типа

Я просто копаюсь в WordPress plus Timber и столкнулся с проблемой, которую не могу решить.

Я создал пользовательский тип записи под названием «проект», в котором я создал специальное поле с именем «проект_категория». Это настраиваемое поле содержит флажок двух вариантов (графический, веб-дизайн).

Вопрос в том, что я могу сделать, чтобы отобразить все проекты, которые содержат «графическую» категорию_проекта?

Вот как я начал:

шаблон graphic.php

Я создал файл graphic.php с этими wp-запросами:

$context = Timber::get_context();

$args = array(
// Get post type project
'post_type' => 'project',
// Get all posts
'posts_per_page' => -1,
// Gest post by "graphic" category
'meta_query' => array(
array(
'key' => 'project_category',
'value' => 'graphic',
'compare' => 'LIKE'
)
),
// Order by post date
'orderby' => array(
'date' => 'DESC'
),
);

$posts = Timber::get_posts( $args );
$context['graphic'] = Timber::get_posts('$args');

Timber::render( 'graphic.twig', $context );

graphic.twig
Затем я создаю файл ветки с этим циклом.

{% extends "base.twig" %}

{% block content %}

<div class="l-container">

<main role="main">
<div class="l-row">
<h1>My graphic design projects</h1>

{% for post in posts %}

<a href="{{ post.link }}" class="project-images l-col l-col--1-of-4 l-col--m-1-of-2">
<h2>{{ post.title }}</h2>

{% if post.thumbnail %}
<img src="{{post.get_thumbnail.src('medium_large')}}" alt="{{post.title}}" />
{% endif %}
</a>

{% endfor %}
</div>
</main>

</div>

{% endblock %}

С этим решением я могу получить только один проект. Когда я хочу отобразить более одного проекта, проект не отображается.
Я пытался использовать «для публикации в проектах» или «для публикации в post.projects», но на самом деле ничего не получилось.

Что я могу сделать, чтобы отобразить все проекты, которые содержат «графическую» категорию_проектов?

6

Решение

@filnug, ты почти у цели. Я думаю, что есть некоторая путаница в отправке переменных из PHP в Twig:

$context = Timber::get_context();
$args = array(
// Get post type project
'post_type' => 'project',
// Get all posts
'posts_per_page' => -1,
// Gest post by "graphic" category
'meta_query' => array(
array(
'key' => 'project_category',
'value' => 'graphic',
'compare' => 'LIKE'
)
),
// Order by post date
'orderby' => array(
'date' => 'DESC'
));

$context['graphics'] = Timber::get_posts( $args );

файл ветки:

{% for post in graphics %}
<h2>{{ post.title }}</h2>
(other markup goes here)

{% endfor %}

удачи!

10

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]