个性化阅读
专注于IT技术分析

WordPress WP入队脚本问题

我在WordPress中遇到有关wp_enqueue_script()的怪异事情, 我想发生的事情是通过向action.php添加动作钩子来在页面上添加脚本, 但是当我这样做时, 它没有在页面上添加脚本页面, 但是当我将代码作为插件放置时, 它现在在页面上添加了脚本

注意:当我在页脚中添加脚本时, 在functions.php中:add_action(‘wp_footer’, ‘function_name’);它可以正常工作, 但是当我将其添加到wp_head上并在init上添加代码时, 它不会添加脚本, 但是即使将其添加到wp_head和在里面

我需要在INIT或WP_HEAD上添加脚本, 但是当我将函数代码放在函数上时不起作用。PHP, 我需要将脚本作为主题的一部分而不是插件

//functions.php
add_action('init', 'function_name');

function function_name(){
wp_enqueue_script( 'script_holder', get_template_directory_uri() . '/script.js');   
}

//as a plugin
add_action('init', 'function_name');

function function_name() {
    $plugin_location=WP_PLUGIN_URL.'/'.str_replace(basename( __FILE__), "", plugin_basename(__FILE__));
    if( !is_admin()){
        wp_enqueue_script( 'script_holder', $plugin_location . '/script.js');
    }
}

我知道它甚至在functions.php中也可以工作, 但是我真的想知道为什么会发生这种情况, 有人可以帮助我并向我解释为什么会发生这种情况吗?

非常感谢你

基本上这就是我在做什么:

add_action('init', 'override_jquery');

function override_jquery() {
    if( !is_admin()){
        wp_deregister_script('jquery');
        wp_enqueue_script( 'nashgraphics_jquery_library', get_template_directory_uri() . '/bootstrap/js/jquery-1.9.0.min.js');
    }
}

#1


可能有几件事发生, 但是由于问题仅发生在functions.php上, 因此人们会认为这与主题有关。你应该确保主题同时具有:

wp_head()–(紧接</ head>之前)

wp_footer()–(即将关闭</ body>)

如果主题作者没有同时包含这两个主题, 或者即使缺少这些功能中的一个, 主题都可能丢失, 脚本可能无法加载。 (并且80%的插件都会有问题)。

另外, 你也没有指定使用哪个主题(你自己的代码??)以及是否是子主题。

你正在使用不能被子主题覆盖的get_template_directory_uri(), 我不知道这是否是问题的一部分, 但你可能还想尝试使用get_stylesheet_directory_uri(), 在许多情况下, 这是更好的选择。

看到你的更新:

在不进行回退的情况下, 用另一个jQuery替换核心jQuery是非常糟糕的做法。无论如何, 你可以尝试删除!is_admin()条件, 或者注销并观看你的站点代码。 (我有种感觉, 你在登录时使用wp admin栏时正在调试它。)


#2


可以在前端使脚本入队的合适钩子是wp_enqueue_scripts:http://codex.wordpress.org/Plugin_API/Action_Reference/wp_enqueue_scripts

赞(0)
未经允许不得转载:srcmini » WordPress WP入队脚本问题

评论 抢沙发

评论前必须登录!