Пользовательский тип сообщения Wordpress Timber Display

Я использую 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 включает

<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>

Я чувствую, что мой код правильный. Однако настраиваемый тип контента «Проект» не отображается. Это странно, потому что я без проблем использую структуру для других страниц того же сайта ...

Любые идеи?

Спасибо!


person filnug    schedule 17.08.2018    source источник
comment
Что такое ярлык вашего произвольного типа сообщения? Это work или project? Вы уверены, что отображается work.php? А вы понимали, что рендерируете page-graphic.twig, но указали page-work.twig как представление Twig?   -  person Gchtr    schedule 18.08.2018
comment
Спасибо за ваш ответ! Слизняк - это работа. Страница-graphic.twig была ошибкой копирования / вставки. Я использую page-work.twig, но он все равно не работает: - /   -  person filnug    schedule 20.08.2018
comment
Итак, вы используете {% for post in works %} в своем файле Twig, но я не вижу, где вы добавляете works в свой контекст. Но вы добавляете graphics. Может быть, это проблема?   -  person Gchtr    schedule 21.08.2018
comment
Извините, если я не прочитал свой код перед публикацией. Но онлайн в файле work.php есть: $context['post'] = new TimberPost(); $context['works'] = Timber::get_posts( $args ); Timber::render( 'page-work.twig', $context ); Но в любом случае ничего не отображается ...   -  person filnug    schedule 21.08.2018
comment
Вы получите какой-либо результат, если используете {{ dump(post) }} сразу после {% for post in works %}?   -  person Gchtr    schedule 21.08.2018
comment
@Gchtr Ничего не понимаю. На странице не загружается содержание работ даже при добавлении code {{ dump(post) }}   -  person filnug    schedule 28.08.2018
comment
Что ж, я предполагаю, что это может быть что-то с вашим запросом, особенно с массивом meta_query. Если вы временно удалите meta_query, появятся ли тогда сообщения? Действительно ли метаполе project_category содержит строку graphic в вашей базе данных или это идентификатор настраиваемой таксономии?   -  person Gchtr    schedule 29.08.2018
comment
Графика - это значение из ACF (расширенное настраиваемое поле). Я изменил work.php на code $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 ); Ну, я скопировал и вставил настоящий код work.php в свой первый пост!   -  person filnug    schedule 29.08.2018
comment
Так он работает сейчас? Или ты все еще застрял?   -  person Gchtr    schedule 30.08.2018
comment
Неа. Все еще не работает. Я посмотрел на свою тему (из начальной темы древесины github.com/timber/starter-theme) , но все выглядит хорошо ... Я до сих пор не понимаю, откуда эта проблема   -  person filnug    schedule 30.08.2018
comment
На всякий случай, можете ли вы повторно сохранить свои настройки НастройкиПостоянные ссылки и проверить, работает ли тогда?   -  person Gchtr    schedule 06.09.2018
comment
Мои постоянные ссылки настроены на имя сообщения. Но даже сохранив их заново, рабочая страница не появляется. Интересно, нет ли закрытого тега php / twig. Или проблема с файлом htaccess ...   -  person filnug    schedule 07.09.2018
comment
Хорошо. В настоящий момент действительно сложно сказать, в чем может быть проблема. Боюсь, я не смогу помочь вам разобраться в этом: /, извините.   -  person Gchtr    schedule 07.09.2018
comment
Я обнаружил, что при установке плагина SEO wordpress заголовок не работает. Интересно, могла ли проблема возникнуть из-за структуры головы. Как это должно быть?   -  person filnug    schedule 18.09.2018
comment
Хороший вопрос! Если вы удалите все плагины, он все равно не будет работать? Под head вы имеете в виду тег <head> или файл header.php в своей теме?   -  person Gchtr    schedule 19.09.2018
comment
Я думал о теге ‹head›! Я пытаюсь удалить плагины   -  person filnug    schedule 20.09.2018
comment
Я удалил плагины. Я просто оставил поля плагинов Timber ACF и ACF Repeater (иначе сайт в основном не работал бы). Интересно, не могла ли проблема вообще возникнуть из ACF! В конце концов, контент из проектов пользовательского типа сообщений не отображается на странице work ...   -  person filnug    schedule 20.09.2018


Ответы (1)


Проблема не в том, что вы передаете $context['post']?

Вы пробовали просто изменить код на

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

Просто чтобы убедиться, что в контексте нет конфликтующих переменных?

person Harry Wiseman    schedule 10.05.2019