Я новичок в Timber / Twig / PHP, и у меня есть довольно специфические требования. У меня есть page-home.php / page-home.twig, который отображает пару полей ACF, отзывы как настраиваемый тип сообщения и последние 3 сообщения в блоге.
В основном меня устраивает внешний интерфейс Twig, но возникают трудности с настройкой файлов шаблонов php.
Я прочитал документацию по Timber и у меня сложилось впечатление, что ACF встроен, так что поле можно просто вызвать непосредственно в Twig. Также проверил Github и SO на похожие проблемы, но не нашел ответа. На YouTube есть видео, посвященное пользовательским типам сообщений, но оно находится в цикле только сообщений.
Это моя страница-home.php
echo 'page-home.php';
$context = Timber::get_context();
$context['page'] = new Timber\Post();
$templates = array('page.twig');
if (is_front_page()){
$context['posts'] = Timber::get_posts('post_type=post&posts_per_page=3');
$context['testimonials'] = Timber::get_posts('post_type=testimonials');
// add your twig view to the front of the templates array
array_unshift($templates, 'page-home.twig');
}
Timber::render( $templates, $context );
$image = get_field('hero_image');
echo '<pre>';
var_dump( $image );
echo '</pre>';
page-home.php, как и ожидалось, показывает 3 сообщения в блоге, но возвращает значение NULL для поля ACF var_dump.
Если я прокомментирую эту строку // $context['posts'] = new Timber\PostQuery($args);
, я получу var_dump моего массива изображений, хотя он не отображается в файле Twig.
Это изображение в page-home.twig <div class="image image-overlay" style="background-image:url({{ Image(post.meta('hero_image')).src }})"></div>
, которое возвращает пустое значение.
Сообщения в блогах называются:
{% for post in posts %}
{% include "blogpost-card.twig" %}
{% endfor %}
Я также не уверен, как вызвать отдельный настраиваемый тип сообщения (отзывы) на той же странице, поскольку в документации этот пример не приводится.
Я использую стартовую тему, установленную через Composer. Было бы здорово, если бы тема или документация содержали пример страницы, содержащей сообщения, пользовательские сообщения и поля ACF, поскольку я думаю, что это очень распространенный сценарий. По крайней мере, для таких, как я, которым нужна небольшая дополнительная помощь со стороной PHP.