<div dir="ltr"><div><div><div><div>Thanks Otto,<br></div>That&#39;s exactly what I was looking for.<br></div>In fact, I am currently looking at your post here<br><a href="http://ottopress.com/2010/passing-parameters-from-php-to-javascripts-in-plugins/">http://ottopress.com/2010/passing-parameters-from-php-to-javascripts-in-plugins/</a><br>
<br></div>Chip,<br></div>I am trying to put my theme&#39;s settings as inline javascript variables to use on the script I enqueue later using wp_enqueue_scripts hook.<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Wed, Jan 23, 2013 at 12:15 AM, Otto <span dir="ltr">&lt;<a href="mailto:otto@ottodestruct.com" target="_blank">otto@ottodestruct.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
That is probably not the right way. The &quot;right&quot; way depends on the<br>
contents of your script code there, actually.<br>
<br>
<br>
If you&#39;re needing script dependencies, where you have to load one<br>
external script before another, then wp_register_script and<br>
wp_enqueue_script support this themselves. Just register all the .js<br>
links and use the $deps argument to make them dependent on the proper<br>
scripts. Like jquery-ui is dependent on jquery, for example. Then the<br>
script printer will put them all in the right order.<br>
<br>
<br>
If you need to add inline variables for scripts to use, then<br>
wp_localize_script will do that. For example, I can register a script<br>
and pass PHP variables to it as named parameters, like so:<br>
<br>
wp_register_script(&#39;example&#39;, &#39;<a href="http://example/whatever.js&#39;" target="_blank">http://example/whatever.js&#39;</a>);<br>
<br>
wp_localize_script(&#39;example&#39;, &#39;Example&#39;, array(<br>
  &#39;examplea&#39; =&gt; &#39;foo&#39;,<br>
  &#39;exampleb&#39; =&gt; &#39;bar&#39;,<br>
) );<br>
<br>
When I then enqueue the &#39;example&#39; script later, the script printer<br>
will recognize the localization as a dependency, and print this out in<br>
a script tag:<br>
<br>
var Example = {&quot;examplea&quot;:&quot;foo&quot;,&quot;exampleb&quot;:&quot;bar&quot;}<br>
<br>
The external .js script can then access these variables as<br>
Example.examplea and Example.exampleb.<br>
<br>
wp_localize_script() was meant for allowing the Internationalization<br>
code to be able to pass translated strings into the javascript files,<br>
but it doesn&#39;t have to be limited to that. You can pass any variable<br>
data you can put into the array in this manner.<br>
<span class="HOEnZb"><font color="#888888"><br>
-Otto<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
<br>
On Tue, Jan 22, 2013 at 12:34 PM, Abhik Biswas &lt;<a href="mailto:abhik@itsabhik.com">abhik@itsabhik.com</a>&gt; wrote:<br>
&gt; Okay,<br>
&gt; So, what if I need to put something *before* my enqueued scripts, what<br>
&gt; should I use?<br>
&gt;<br>
&gt; Is this the right way?<br>
&gt;<br>
&gt; function my_scripts() { ?&gt;<br>
&gt; &lt;script type=&quot;text/javascript&quot;&gt;<br>
&gt; ........<br>
&gt; &lt;/scripts&gt;<br>
&gt;<br>
&gt; &lt;?php }<br>
&gt; add_action (&#39;wp_enqueue_scripts&#39;, &#39;my_scripts&#39;, 5 );<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; function my_enqueued_scripts() {<br>
&gt;<br>
&gt;  wp_enqueue_script (&#39;myscript&#39;, ...... myotherscript.js....., &#39;&#39;);<br>
&gt;<br>
&gt; }<br>
&gt; add_action (&#39;wp_enqueue_scripts&#39;, &#39;my_enqueued_script&#39;, );<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Jan 22, 2013 at 11:56 PM, Otto &lt;<a href="mailto:otto@ottodestruct.com">otto@ottodestruct.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; The question itself is slightly confusing, because it kinda depends on<br>
&gt;&gt; the purpose...<br>
&gt;&gt;<br>
&gt;&gt; For the front-end of the site, the wp_print_scripts action is actually<br>
&gt;&gt; executed from the wp_print_head_scripts() function.<br>
&gt;&gt;<br>
&gt;&gt; The wp_print_head_scripts() function is actually hooked to the wp_head<br>
&gt;&gt; action, like so:<br>
&gt;&gt; add_action( &#39;wp_head&#39;, &#39;wp_print_head_scripts&#39;, 9 );<br>
&gt;&gt;<br>
&gt;&gt; Same goes for wp_enqueue_scripts. The wp_enqueue_scripts action is in<br>
&gt;&gt; the wp_enqueue_scripts() function which is called like so:<br>
&gt;&gt; add_action( &#39;wp_head&#39;, &#39;wp_enqueue_scripts&#39;, 1 );<br>
&gt;&gt;<br>
&gt;&gt; So the answer is different depending on whether you consider the<br>
&gt;&gt; action to have occurred when the action is called or when the action<br>
&gt;&gt; has returned.<br>
&gt;&gt;<br>
&gt;&gt; The long and the short of it is that both enqueuing and printing of<br>
&gt;&gt; scripts happen inside the wp_head() call. So the question of ordering<br>
&gt;&gt; isn&#39;t something that external code really needs to consider. Instead,<br>
&gt;&gt; you need to know that you should add scripts on wp_enqueue_scripts,<br>
&gt;&gt; and remove scripts on wp_print_scripts (as this is the last possible<br>
&gt;&gt; moment to remove them before they get printed to the output).<br>
&gt;&gt;<br>
&gt;&gt; -Otto<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Tue, Jan 22, 2013 at 12:16 PM, Michael Fields &lt;<a href="mailto:michael@mfields.org">michael@mfields.org</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt; &gt; Here&#39;s a simple way to test this:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; &lt;?php<br>
&gt;&gt; &gt; function mfields_test_some_hooks() {<br>
&gt;&gt; &gt;         static $i = 1;<br>
&gt;&gt; &gt;         var_dump( $i . &#39; - &#39; . current_filter() );<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;         $i++;<br>
&gt;&gt; &gt; }<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; add_action( &#39;wp_head&#39;,            &#39;mfields_test_some_hooks&#39; );<br>
&gt;&gt; &gt; add_action( &#39;wp_print_scripts&#39;,   &#39;mfields_test_some_hooks&#39; );<br>
&gt;&gt; &gt; add_action( &#39;wp_enqueue_scripts&#39;, &#39;mfields_test_some_hooks&#39; );<br>
&gt;&gt; &gt; ?&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I get the following order:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; 1 - wp_enqueue_scripts<br>
&gt;&gt; &gt; 2 - wp_print_scripts<br>
&gt;&gt; &gt; 3 - wp_head<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; theme-reviewers mailing list<br>
&gt;&gt; &gt; <a href="mailto:theme-reviewers@lists.wordpress.org">theme-reviewers@lists.wordpress.org</a><br>
&gt;&gt; &gt; <a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; theme-reviewers mailing list<br>
&gt;&gt; <a href="mailto:theme-reviewers@lists.wordpress.org">theme-reviewers@lists.wordpress.org</a><br>
&gt;&gt; <a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; theme-reviewers mailing list<br>
&gt; <a href="mailto:theme-reviewers@lists.wordpress.org">theme-reviewers@lists.wordpress.org</a><br>
&gt; <a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
&gt;<br>
_______________________________________________<br>
theme-reviewers mailing list<br>
<a href="mailto:theme-reviewers@lists.wordpress.org">theme-reviewers@lists.wordpress.org</a><br>
<a href="http://lists.wordpress.org/mailman/listinfo/theme-reviewers" target="_blank">http://lists.wordpress.org/mailman/listinfo/theme-reviewers</a><br>
</div></div></blockquote></div><br></div>