[wp-hackers] a newbie question on wp_enqueue_scripts and an action or a filter

Ryan McCue lists at rotorised.com
Fri Jun 15 12:56:46 UTC 2012

Vid Luther wrote:
> Ok, I'm clearly not understanding the chain of events properly. Based on
> what Ryan and Chip said, and understanding that wp_enqueue_script isn't run
> in wp_head().

So, walking through it:

1. twentyeleven/header.php is loaded
(Some stuff happens here)
2. The start of the <link> tag is output
3. The stylesheet URI is output
4. The rest of the <link> tag is output
(More stuff here)
5. wp_head() is called
5a. Enqueued scripts are output

Note that these are separate. Enqueued styles are output during 
wp_head(), but the other output is hardcoded in the file and not 
related. The reason you're getting two <link> tags is because the first 
one in header.php is being output, then your enqueued one is being 
output later.

> add_filter('stylesheet_uri', zk_css_versioner());

The second parameter to add_filter() is a callback, which in PHP is 
represented as a string for normal functions. What this is doing is 
taking the result of that function, and attempting to hook that function 
in as a filter (and the 'http://.../style.css' function does not exist, 
causing problems).

Try using a string instead:

     add_filter('stylesheet_uri', 'zk_css_versioner');

>      echo $cssuri;

This should be returning the string instead of echoing it. The filter 
calls your callback and takes the result of that as the value that it 
will output.
Ryan McCue

More information about the wp-hackers mailing list