WordPress twig template shortcode not displayed

I’m using Symfony Twig template with WordPress, everything runs fine except that I can’t get any shortcode to be displayed in a page template.

I’m trying to display a contact form with Contact form 7 plugin.

Read More

The shortcode is something like [contact-form-7 id='1234' title='Contact']
Even WordPress default shortcode are not working.

Here is my code for page template:

{% extends 'base.html.twig' %}

{% block content %}
    <h1>{{ post.post_title }}</h1>

    <div class="entry">
        {{ post.post_content|raw }}
    </div>
{% endblock %}

If I replace

{{ post.post_content|raw }}

by this

{{ wp.do_shortcode('[contact-form-7 id="1234" title="Contact"]') }}

I can see the contact form. But I don’t want to write the shortcode in my template file.

Thanks for your help

Related posts

Leave a Reply

5 comments

  1. One of the following should work!

    {{ wp.do_shortcode( post.post_content) }}

    or,

    {{ wp.do_shortcode( post.post_content)|raw }}

    or ,

    {{ wp.do_shortcode( post.post_content|raw ) }}

    or

    {{ wp.do_shortcode( post.post_content|raw )|raw }}

    Updated

    Working Code Is :

    {{ wp.do_shortcode( post.post_content)|raw }}

  2. {% filter shortcodes %}
        {{ wp.do_shortcode(' [email-subscribers') }}
    {% endfilter %}
    

    but the only HTML displayed not displayed Email subscribers form.

  3. I print Shortcode value in twig template like this way:

    {% set contact_form = (contact_form.form is not empty) ? '[contact-form-7 id="' ~ contact_form.form ~ '"]' : '' %}
    {{ function('do_shortcode', contact_form) }}