Ich grabe mich gerade in WordPress plus Timber ein und bin auf ein Problem gestoßen, das ich nicht lösen kann.
Ich habe einen benutzerdefinierten Beitragstyp namens „Projekt“ erstellt, in dem ich ein benutzerdefiniertes Feld namens „Projekt_Kategorie“ erstellt habe. Dieses benutzerdefinierte Feld enthält ein Kontrollkästchen mit zwei Auswahlmöglichkeiten (Grafik, Webdesign).
Die Frage ist, was kann ich tun, um alle Projekte anzuzeigen, die die Projektkategorie “Grafik” enthalten?
So habe ich angefangen:
Grafik.php-Vorlage
Ich habe eine Grafik.php-Datei mit diesen wp-Abfragen erstellt:
$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 );
Grafik.Zweig
Dann erstelle ich mit dieser Schleife eine Zweigdatei.
{% 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="https://stackoverflow.com/questions/40239810/{{ 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 %}
Mit dieser Lösung kann ich nur ein Projekt erhalten. Wenn ich mehr als ein Projekt anzeigen möchte, wird das Projekt nicht angezeigt. Ich habe versucht, “for post in projects” oder “for post in post.projects” zu verwenden, aber nichts hat wirklich geklappt.
Was kann ich tun, um alle Projekte anzuzeigen, die die Projektkategorie „Grafik“ enthalten?