有没有办法设置wp_footer挂钩函数的顺序?

时间:2012-04-07 作者:Pierre

我想知道是否可以设置挂接到wp\\u footer()的函数的顺序,我创建了一个函数,它响应:

<script> ajsfunction(); </script>
我还将此函数的js文件排入队列,并将其打印在页脚中,但上面的内容是在链接到js文件之前打印的,因此它不起作用,我这样做是因为此脚本不是在所有页面上运行的,而是在特定页面上运行的。

如果我们无法使用wp\\u footer执行此操作,是否有方法在排队的js文件之后输出此脚本标记?

提前谢谢。

2 个回复
最合适的回答,由SO网友:onetrickpony 整理而成

建议的方法是在中调用函数。您正在排队的js文件。你有什么理由不能那样做吗?

如果需要从脚本中访问动态数据(如WP选项),请使用wp_localize_script 要使用所需数据初始化javascript对象,请执行以下操作:

$data = array(\'some_option\' => get_option(\'an_option_from_my_theme\'));

wp_enqueue_script(\'your_script_handle\', \'path/to/the/script.js\');
wp_localize_script(\'your_script_handle\', \'my_theme_options\', $data);
在脚本中,您可以像访问javascript对象一样访问数据:

console.log(my_theme_options.an_option_from_my_theme);
在您最后的评论之后,您有两种可能性:

将代码放入另一个已排队的javascript文件中,并使插件成为此文件的依赖项。

wp_footer 钩子,在WP打印页脚脚本后:

add_action(\'wp_footer\', function(){

 ?>
 <script>

 // your javascript

 </script>
 <?php 

 }, 100);
“100”是优先级,数字越高-操作的执行优先级越低。脚本以“20”优先级打印

如果你有很多js代码,我会选择(1),否则内联javascript就可以了(2)。

SO网友:Rajeev Vyas

看看这个。。

http://codex.wordpress.org/Function_Reference/add_action

您可以设置两个挂钩函数的优先级

add_action(\'wp_footer\',\'your_func\',100);
add_action(\'wp_footer\',\'your_func1\',200);

结束