WordPress的木材显示自定义帖子类型

时间:2018-08-17 12:37:40

标签: wordpress twig timber

我将Timber用作Wordpress主题,一段时间以来,我注意到Timber不会显示所创建的新页面的内容。

以下是我的结构示例:

我有一个 work.php 页面,其中包含以下上下文:

        $context = Timber::get_context();

$args = array(
    // Get post type project
    'post_type' => 'project',
    // Get all posts
    'posts_per_page' => -1,
    // Order by post date
    'orderby' => array(
        'date' => 'DESC'
    )
);

$context['post'] = new TimberPost();
$context['works'] = Timber::get_posts( $args );

Timber::render( 'page-work.twig', $context );

然后我有一个“ page-work.twig ”页面,检索包含“ inc-work.twig”的页面

{% extends "base.twig" %}
{% block content %}
    {% include 'inc-work.twig' %}  
{% endblock %}

这是inc-work.twig include

<section class="l-homegrid lazy-scroll">
  {% for post in works %}
    {% if post.thumbnail %}
      <a href="{{post.link}}" class="l-basicgrid-work work">
        <article>
          <figure>
            <img data-src="{{post.get_thumbnail.src('full')|resize(800, 533)}}" alt="project {{post.title}}" class="lazy">
          </figure>
          <figcaption>
            <h2>{{ post.title }}</h2>
          </figcaption>
        </article>
      </a>
    {% endif %}
  {% endfor %}      
</section>

我认为我的代码是正确的。但是,不显示自定义内容类型“项目”。 奇怪,因为我在同一个网站的其他页面上使用该结构没有任何问题...

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

问题不是您要通过$context['post']?

您是否尝试过仅将代码更改为

{% for work in works %}
    ...
{% endfor %} 

只是要确保上下文中没有冲突的变量?