How do I use wp_enqueue_script so that I get protocol neutral URLs? Here is how I’m currently using it:

<?php wp_enqueue_script('name', get_bloginfo('template_directory'). '/js/name.pack.js'); ?>

I saw that home_url() is protocol aware so I figured theme_url() would be also but I’m getting the error below when I use it.

Call to undefined function theme_url()

2 s
2

You can’t — URLs must have a protocol for WordPress to enqueue them. What you can do, though, is detect which protocol to use and then use that.

$protocol = is_ssl() ? 'https' : 'http';
$url = "$protocol://example.com/resource";

But for enqueuing scripts from your theme, you should use get_template_directory_uri() or get_stylesheet_directory_uri() which already handle SSL:

wp_enqueue_script('name', get_stylesheet_directory_uri() . '/js/name.pack.js');

Leave a Reply

Your email address will not be published. Required fields are marked *