Как заставить переменную ветки преобразовать в строку?

У меня есть шаблон веточки, который генерирует JSON-LD внизу страницы блога. Вот раздел метаданных JSON:

    {% set dateString %}
"datePublished": "{{ post.post_date|date('c') }}",
{% endset %}
{{ post.settings.hide_publish_date ? '' : '{{ dateString }}' }},

Вывод при просмотре исходного кода веб-страницы выглядит следующим образом:

"DatePublished": "{{ dateString }}",

То, что я ожидал увидеть, было что-то вроде этого:

"DatePublished": "2017-03-15T10:59:56+00:00",

Как я могу убедиться, что моя переменная dateString разрешается до ожидаемого значения?

1

Решение

Мне удалось получить значение даты для правильного вывода с помощью веточка заменить фильтр.

{% set dateString %}
"datePublished": "{{ post.post_date|date('c') }}",
{% endset %}
{{ post.settings.hide_publish_date ? '' : '%dateOutput%'|replace({'%dateOutput%': dateString}) }}

Теперь веб-страница выводит ожидаемые значения в JSON-LD:

"DatePublished": "2017-03-15T10:59:56+00:00",
0

Другие решения

Ты можешь использовать template_from_string функция ветки:

template_from_string функция не доступна по умолчанию. Вы должны явно добавить расширение Twig_Extension_StringLoader при создании среды Twig:

Вы можете найти более подробную информацию о http://twig.sensiolabs.org/doc/2.x/functions/template_from_string.html

0

По вопросам рекламы [email protected]