php - WordPress Timber 获取自定义帖子类型的帖子

标签 php wordpress twig timber

我正在深入研究 WordPress 和 Timber,我遇到了一个我无法解决的问题。

我创建了一个名为“project”的自定义帖子类型,我在其中创建了一个名为“project_category”的自定义字段。该自定义字段包含两个选项(图形、网页设计)的复选框。

问题是如何显示包含 project_category“图形”的所有项目?

我是这样开始的:

graphic.php 模板

我用这些 wp 查询创建了一个 graphic.php 文件:

$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 );

图形.twig 然后我用这个循环创建一个 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 %}

使用此解决方案,我只能获得一个项目。当我想显示多个项目时,该项目不显示。 我尝试使用“for post in projects”或“for post in post.projects”,但没有任何效果。

如何显示包含 project_category“图形”的所有项目?

最佳答案

@filnug,你快到了。我认为将变量从 PHP 发送到 Twig 只是有些困惑:

图形.php:

$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 );

Twig 文件:

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

{% endfor %}

祝你好运!

关于php - WordPress Timber 获取自定义帖子类型的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40239810/

相关文章:

php - 分组依据未显示所有行

jquery - wordpress - 按特定ID顺序显示页面

symfony - 将第 3 方 bundle 集成到 SonataAdminBundle 中

php - 将所有 GET 查询从一个站点重定向到另一个站点

wordpress - 如何允许Wordpress用户直接上传到youtube或vimeo?

php - 奇怪的 MySQL 通配符行为

php - 如何迭代 Twig 模板中 findBy Doctrine 查询的数组结果

php - SYMFONY 4 - 如何将用户重定向到同一表单的下一部分? (在另一页)

php - 对二维数组使用神奇的 __set() 方法

php - UTF-8贯穿始终