Support » Plugin: Speed Optimizer - The All-In-One WordPress Performance-Boosting Plugin » How do I exclude inline script that has no code from combine?

  • Resolved Guyinpv

    (@guyinpv)


    We have some code that needs to go in a post, provided by a 3rd party.
    Their code is a combination of an <a> link followed by a <script> that processes whatever.
    The <script> has no code, it just points to a src="" and has some other data attributes.

    How do I exclude this kind of inline script from the SGO JS combine feature?

    I tried using the filter “sgo_javascript_combine_excluded_inline_content” but it wants me to put the “first few symbols” of the script. Problem is, the script is empty because it just has the src="" and no inner code.

    So how do I exclude this kind of script from being combined?

    As a side note, it could really help if we can exclude it within the tag attributes themselves, like if we did <script sgo-combine-exclude src=""></script>. Then we can exclude it manually right in the tag itself.

Viewing 3 replies - 1 through 3 (of 3 total)
  • Plugin Support Plamen M

    (@plamenm)

    Hello @guyinpv ,

    To be able to exclude a script, you need to first locate its handler. Detailed step by step instructions are outlined in this thread here – please take a look:

    https://wordpress.org/support/topic/how-to-use-sg-optimizers-filters-procedure/

    If you need any further assistance, do not hesitate to contact us back.

    Regards,
    Plamen.M
    Tech Support Team
    SiteGround.com

    Thread Starter Guyinpv

    (@guyinpv)

    Hi, thanks for the response.
    These scripts don’t have handlers, I thought that would be fairly clear in the question. The scripts are given by 3rd party and directly placed into post content, they are not being enqueued by WordPress functions, they are inline scripts with a src=”” and no inner code. Think of it like a donate button or something.
    <script src="some.3rd.party.script"></script>

    It’s not enqueued, there is no handler. But when SGO combines this and moves the code somewhere, it breaks it.

    If SGO is only able to exclude scripts with handles, then it should not be processing any script that doesn’t have a handle in the first place! Code like the above needs to be output precisely where it is in the content and cannot be whisked away and combined somewhere into a footer script.

    Is there any other way to exclude it?

    Plugin Support daniellaivanova

    (@daniellaivanova)

    Hello @guyinpv,

    If the code that needs to be excluded contains an URL leading to a third-party script, you should be able to exclude it by using the snippet below:

    add_filter( 'sgo_javascript_combine_excluded_external_paths', 'js_combine_exclude_external_script' );
    function js_combine_exclude_external_script( $exclude_list ) {
        $exclude_list[] = 'script-host.com';
        $exclude_list[] = 'script-host-2.com';
    
        return $exclude_list;
    }

    You need to substitute script-host.com and/or script-host-2.com with the URL or URLs that you need to exclude from the JS combine functionality.

    In case you need to exclude an inline script, use the filter below:

    add_filter( 'sgo_javascript_combine_excluded_inline_content', 'js_combine_exclude_inline_script' );
    function js_combine_exclude_inline_script( $exclude_list ) {
        $exclude_list[] = 'first few symbols of inline content script';
    
        return $exclude_list;
    }

    where you need to substitute “first few symbols of inline content script” with the actual first few symbols of the script.

    Best regards,
    Daniela Ivanova
    SiteGround Support Team

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘How do I exclude inline script that has no code from combine?’ is closed to new replies.