programing

WordPress Timber 사용자 지정 게시물 유형의 게시물 가져오기

stoneblock 2023. 2. 23. 21:58

WordPress Timber 사용자 지정 게시물 유형의 게시물 가져오기

WordPress와 Timber를 조사하다가 해결할 수 없는 문제를 발견했습니다.

「project」라고 하는 커스텀 투고 타입을 작성했습니다.그 안에 「project_category」라고 하는 커스텀 필드를 작성했습니다.이 커스텀 필드에는, 2개의 선택지(그래픽, Web 디자인)의 체크 박스가 있습니다.

문제는 project_category "그래픽"을 포함하는 모든 프로젝트를 표시하려면 어떻게 해야 합니까?

시작은 다음과 같습니다.

graphic.graphic 템플릿

다음 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 );

graphic.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 %}

이 솔루션으로는 하나의 프로젝트만 얻을 수 있습니다.여러 프로젝트를 표시할 경우 프로젝트가 표시되지 않습니다.'프로젝트 투고' 또는 '프로젝트 투고'를 사용하려고 했지만 잘 되지 않았습니다.

project_category "그래픽"을 포함하는 모든 프로젝트를 표시하려면 어떻게 해야 합니까?

@filnug, 거의 다 왔어.PHP에서 Twig로 vars를 보내는 것에 대해 약간의 혼란이 있다고 생각합니다.

그래픽스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 %}

행운을 빈다!

언급URL : https://stackoverflow.com/questions/40239810/wordpress-timber-getting-posts-of-a-custom-post-type