Enqueue Script with URL parameters

I have the following I'm trying to enqueue in functions.php

wp_enqueue_script( 'param-example', 'https://domain.com/example?f=js=wc=t', array(), null );

Except WordPress is escaping the ampersands in the HTML which is breaking the script.

How can I prevent WordPress from escaping the URL in wp_enqueue_script?

The other examples that seem close to this question haven't worked.

Topic query-variable wp-enqueue-script Wordpress

Category Web


Another solution is to create a hook to target specific URLS.

e.g.

// 
// Add to functions.php, or to a Plugin file.
//
// Change, CHANGE_ME.com to Urls you want to stop wordpress from converting.
//
add_filter('clean_url', 'hook_strip_ampersand', 99, 3);
function hook_strip_ampersand($url, $original_url, $_context) {
    if (strstr($url, "CHANGE_ME.com") !== false) {
        $url = str_replace("&", "&", $url);
    }

    return $url;
}

For more information: https://stackoverflow.com/questions/9504142/loading-google-maps-api-with-wp-enqueue-script/9504653


WordPress can automatically add the query variables for you. Instead of directly writing the query arguments, you can use it this way:

$args = array(
        'f' => 'j',
        's' => 'w',
        'c' => 't'
    );
wp_enqueue_script( 'param-example', add_query_arg( $args, 'https://domain.com/example') );

This is your solution, since according to code reference, the return value is unescaped by default.

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.