将函数.php中的脚本与页面上的脚本排队

时间:2011-10-07 作者:jw60660

如果我只在需要使用的页面上将脚本排队,这有关系吗?而不是functions.php?

或者,最佳做法是什么?在这个例子中,我需要在我的网站首页上放置一个旋转器。

如果我把它排在页面上,有没有最好的地方放?

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

使用函数。php。

使用wp\\u enqueue\\u scripts操作调用此函数,或使用admin\\u enqueue\\u scripts在管理端调用此函数。在操作之外调用它可能会导致问题。有关详细信息,请参阅#11526。

资料来源:http://codex.wordpress.org/Function_Reference/wp_enqueue_script

function themename_load_js() {

    if ( is_admin() ) {
        return;
    }

    if is_page( 123) { // Replace 123 with your page\'s ID.
        wp_enqueue_script( \'jquery\' );
        wp_enqueue_script( \'rotator-js\', get_template_directory_uri() . \'/js/rotator.js\', array ( \'jquery\' ) );
        wp_enqueue_script( \'rotator-init-js\', get_template_directory_uri() . \'/js/rotator-init.js\', array ( \'jquery\', \'rotator-js\' ) );
    }
} 
add_action( \'wp_print_scripts\', \'themename_load_js\' );
编辑:额外提示:每当我需要这样做,而不是在函数中硬编码页面ID时,我会创建一个选项页面,并添加对wp\\u dropdown\\u pages()的调用,允许用户选择特殊页面。你说你在使用头版,所以你可以利用is_front_page() 而不是检查页面ID,这样更干净。

SO网友:Steph

这对我来说绝对有效:

add_action(\'get_header\', function() {
    if(is_page(\'566\')) {

        function sp_enqueue_script() {
            wp_enqueue_script(
                \'sp-custom-script\',
                get_stylesheet_directory_uri() . \'/assets/js/sp_script.js\',
                array( \'jquery\' ), \'1.0\', true
            );
        }

        add_action( \'wp_enqueue_scripts\', \'sp_enqueue_script\' );
    }
});
is_page 在函数中不起作用。php,因为主查询尚未加载,所以请等待标头加载。

中的最后一个布尔值wp_enqueue_script 钩子用于脚本在页脚中排队,因此它运行得更快。

结束

相关推荐

将jQuery Prepend()与文件包含一起使用

我正在开发一个插件,它将在<body> 标记到站点。由于这将用于多个主题,我不能依赖一些主题/框架提供的各种挂钩。我知道我可以使用prepend() 函数来包含原始标记,但我似乎找不到一种可靠的方法来包含。改为php文件。