Page Builders – FAQ

  • Elements are not functioning correctly while dynamic content is loaded using Ajax

    When you choose to load the dynamic content using Ajax, the content is loaded in a separate request to the server after the static content loads from the cache (click here to learn more about how Page Cache works). 

    In some cases, the appearance and/or functionality of the content loaded via Ajax may be broken. This usually happens when it needs to be initialized with javascript, which by default happens on page load (and so doesn’t affect the Ajax content, since it is loaded later).

    Make sure the problem is caused due to the Ajax Loading

    To check if the problem is caused by the Ajax loading, go to If-So > Settings (on your WordPress dashboard) and disable the Page Caching Compatibility option. Alternatively, depending on how you have set the dynamic content, you can disable the Ajax loading specifically for the content that’s experiencing problems:

    • Dynamic triggers: Add the attribute ajax=”no” to the trigger’s shortcode.
    • Gutenberg / Elementor blocks/elements: Make sure the “Ajax Loading” option is off.


    Before checking the possible solutions, bear in mind that If-So allows you to disable the Ajax loading for a specific trigger by adding the parameter ajax="no" to the trigger's shortcode.

    There might be use cases in which page caching is not relevant or crucial, so excluding it from the cache might be the best option. Two popular use cases in which you might prefer excluding the page from the cache:

    1. If you are using one of the query-strings conditions (UTM Parameters, the Dynamic Link, or the Page URL conditions) - Most caching plugins do not cache URLs with query strings anyway. If you are using the UTM Parameters, the Dynamic Link, or the Page URL conditions (with query parameters), your pages aren't cached anyway (or can be cached separately).
    2. No significant meaning to the loading speed - If the page on which you use the dynamic content is an internal page with no significant value to its loading speed (your 'thank-you' page, for example).

    Elementor users

    If the issue you experience is related to an Elementor element, paste the code below on your functions.php file:

    wp_register_script( 'ifso-dummy-enqueue-to-attach-to', '',);
    wp_enqueue_script( 'ifso-dummy-enqueue-to-attach-to' );
    wp_add_inline_script( 'ifso-dummy-enqueue-to-attach-to', "

    All other cases except Elementor (dev skills are required)

    If-so provides javascript events that are fired after the Ajax content has been loaded, making it easy to initialize your content after it has been loaded:

    Ifso_ajax_triggers_loaded - Fires when the dynamic content in all the If-So triggers present on the page has been loaded.
    Ifso_ajax_conditions_loaded -  Fires when the dynamic content in all of the If-So standalone condition widgets (Gutenberg, Elementor) present on the page has been loaded.


    document.addEventListener('ifso_ajax_triggers_loaded',function(){  document.getElementById('myClickButton').addEventListener('click',myClickCallback);

    Workaround (for non-developers)

    A non-elegant solution that works in some cases is to include an invisible (hidden with CSS) copy of the dynamic content and load it without Ajax. This would allow the initialization routine to run in addition to the content loaded with Ajax.

    To hide the content from the user, wrap the content in a div with a display:none attribute and apply it to the page inside an HTML/code module.

    If you're not familiar with HTML and CSS, you can copy and paste the following code to your site. Just make sure to replace the trigger's ID (123) with the ID of your trigger.

    <p style="display:none;"></p>
  • Can I create content using my page builder and use it as a dynamic If-So version?

    Yes, you can.

    Regardless of which page builder you are using, you can design your dynamic content on a separate page using your builder, and apply the page content into If-So using a shortcode.

    If you are using Gutenberg or Elementor, please check out our conditional blocks/element options:

    Step- by-step guide

    1. Create a new page or post and design the content using your page builder.
    2. Create a new If-So trigger or edit exiting one.
    3. Paste the shortcode below in the version content field:
    1. Replace the ID (123 in our example) with the page/post ID of the page you created.

    How to get your post or page ID?

    To find the post ID, you can open the post using the WordPress editor and check its URL. The post ID is placed between “post =” and “&”.

    Learn more about the Post ID shortcode


    In some cases, if you load the dynamic content using Ajax, some of the modules loaded using this method might not function as expected (Usually modules that involve JavaScript). Learn more.

  • Can I create conditional Elementor Elements?

    Yes, you can. Check out our Elementor integration.

  • Is If-So compatible with the Site Origin builder?

    Yes! If-So works with any modern page builder. Learn more.

  • Is If-So compatible with the Theme Fusion builder?

    Yes! If-So works with any modern page builder. Learn more.

  • Is If-So compatible with Beaver Builder?

    Yes! If-So works with any modern page builder. Learn more.

  • Is If-So compatible with Visual Composer?

    Yes! If-So works with any modern page builder. Learn more.

  • Is If-So compatible with Oxygen site builder?

    Yes! If-So works with any modern page builder. Learn more.

  • Will If-So work with Thrive Architect plugin?

    Yes! If-So works with any modern page builder. Learn more.

  • Does If-So work with Divi Builder?

    Yes, it does, and it’s extremely simple!

    When you create a dynamic trigger with If-So, you will receive a shortcode that you can embed anywhere on your website. Simply paste the shortcode inside a Divi text or code modules.  Every time the page loads, one of the trigger's versions will be displayed based on the condition.

    Can I build content with Divi and use it inside If-So?

    Yes, you can. Here's how:

    1. Build a layout, section, or module inside Divi.
    2. Save it to the library
    3. Create a new If-So trigger, set a condition, and embed the saved layout using a shortcode.

      There are several ways to enable the option to embed elements from the library using a shortcode. The most simple one is using a free 3rd-party plugin called Simple Divi Shortcode.
  • Is If-So compatible with Brizy (builder)?

    Yes, If-So can be used with Brizy.

    You simply create a trigger with several content versions inside If-So, and paste the trigger shortcode inside a Brizy Shortcode or text element. Upon page rendering, the shortcode will be replaced with one of the content versions you created in your trigger.

    How to design content in Brizy and use it as a dynamic If-So version?

    If-So arrives with a WYSIWYG editor (the classic WordPress editor) that allows simple content editing. If you want to design your dynamic content using the Brizy editor, you can create the desired content in a new page or post, and then apply the content of the page (or post) you created inside the If-So trigger using a simple shortcode.


    1. Create a new page (or post)
    2. Design the page content using the Brizy editor
    3. In an new tab, create a new If-So trigger
    4. Paste the shortcode below In the version content field. Upon rendering, the shortcode will display the page/post content.
      *Make sure to replace "123" with your post/page ID (learn more about the post ID shortcode).

  • Is If-So compatible with Optipress3?

    Yes! If-So works with any modern page builder. Learn more.