I have a twig template that generates JSON-LD at the bottom of a blog page. Here is a section of the JSON metadata:
{% set dateString %}
"datePublished": "{{ post.post_date|date('c') }}",
{% endset %}
{{ post.settings.hide_publish_date ? '' : '{{ dateString }}' }},
The output when I view the source code of the webpage is this:
"DatePublished": "{{ dateString }}",
What I expected to see was something like this:
"DatePublished": "2017-03-15T10:59:56+00:00",
How can I ensure that my variable dateString
resolves to the expected value?
I was able to get the date value to output correctly by using the twig replace filter.
{% set dateString %}
"datePublished": "{{ post.post_date|date('c') }}",
{% endset %}
{{ post.settings.hide_publish_date ? '' : '%dateOutput%'|replace({'%dateOutput%': dateString}) }}
The webpage now outputs the expected values to the JSON-LD:
"DatePublished": "2017-03-15T10:59:56+00:00",