Strattic Developer Docs

Check for Preview or Live Headers

If you want to add something, additional scripts for instance, to only the Live or Preview static site, you can add something like the following to your functions.php file, a custom plugin, or to a custom theme:

add_action(
    'wp_head',
    function () {
        $headers = getallheaders();
        if (isset($headers['publishType']) && $headers['publishType'] === 'preview') {
            echo "
            <!-- Google Tag Manager -->
            <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
            new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
            j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
            'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
            })(window,document,'script','dataLayer', 'GTM-123ABC');</script>
            ";
        }
    }
);
add_action(
    'wp_body_open',
    function () {
        $headers = getallheaders();
        if (isset($headers['publishType']) && $headers['publishType'] === 'preview') {
            echo '
            <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-123ABC"
            height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
            <!-- End Google Tag Manager (noscript) -->
            ';
        }
    }
);