Как отрендерить шаблон Twig после вызова AJAX

У нас есть сайт электронной коммерции. Чтобы обновить нашу мини-корзину в заголовке, я вызываю функцию PHP через AJAX и могу получить либо JSON со всеми данными, либо уже скомпилированный файл веточки. На мой взгляд, это не лучшая практика, поскольку вызов ajax может стать очень большим со всеми этими элементами DOM внутри. Мой подход - использовать данные из файла JSON и отображать их со стороны javascript. Мои два вопроса:

  1. Как лучше всего отображать / компилировать данные в шаблон? PHP-рендеринг или со стороны JS?
  2. Я читал о twig.js, но не совсем понял, как его использовать - особенно в wordpress, я понятия не имею, где разместить проект, чтобы он работал.

Внутри timber.js я смог найти какой-то тест, который затем попытался добавить в свой код, но, к сожалению, это не сработало. Вот что я использовал:

const Twig = require('../twig-js').factory();

const {twig} = Twig;

Хотелось бы увидеть что-то вроде этого:

success:function(response) {
   $('.cart-dropdown').load('twig-template.twig', response);
}

Любой подход приветствуется.


person Antoine Henrich    schedule 02.11.2019    source источник


Ответы (1)


Рендеринг шаблона Twig должен прийти вам в ответ с сервера. То есть в случае успеха у вас должен быть готовый html.

$html = $twig->render( 'twig-template.twig', $args );
die( $html );
person WP Punk    schedule 02.11.2019