问题描述

  • 我一直在阅读这个问题,但是我读的越多 – 我越感到困惑。

  • 有人可以简单的向我解释一下 wp_enqueue_scriptswp_register_scriptswp_print_scripts 有什么区别?

  • 例如,我的 functions.php 中有以下代码 – 它的工作原理,但我不明白为什么我不能使用 wp_print_scripts 的样式表,而代码仍然可以使用 wp_enqueue_scripts 的 javascript 文件:

    add_action('wp_print_scripts', 'add_my_js');
    function add_my_js(){
        if(!is_admin()){
            wp_enqueue_script('default',  get_bloginfo('stylesheet_directory').'/js/default.js', array('jquery'));
        }
    }
    
    add_action('wp_enqueue_scripts', 'add_my_stylesheet');
    function add_my_stylesheet() {
        wp_register_style('default', get_bloginfo( 'stylesheet_url'));
        wp_enqueue_style( 'default');
    }
    

最佳解决方案

wp_print_scripts 是脚本输出到模板时运行的操作。 wp_register_scriptwp_enqueue_script 是在 wp_print_scripts 运行时注册/排队脚本输出的功能。

您不能在 wp_print_scripts 动作钩子中注册或排入样式,因为样式已经在 wp_print_scripts 之前运行的 wp_print_styles 钩子中输出。

请参阅 action reference 以查看请求中执行的顺序:

22. wp_head
23. wp_enqueue_scripts
24. wp_print_styles
25. wp_print_scripts

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。