在WordPress管理界面中添加jQuery脚本

23

出于某种原因我无法让WordPress /wp-admin页面执行一个简单的查询文件。 只有在我的主题文件夹中的functions.php中取消注册jquery才能正常工作,但这样我必须单独重新注册所有jquery.ui文件,这很烦人。我正在使用WordPress 3.0多站点安装。我试图不去触碰核心wp文件。

它会在源代码中显示并链接到该文件,但不会执行脚本。 以下是我在functions.php中拥有的内容:

function my_script() {
if (!is_admin()) {
    wp_deregister_script('jquery');
    wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js', false, '1.4.4');
    wp_enqueue_script('jquery');
    wp_enqueue_script('custom_script', get_bloginfo('template_url').'/js/myScript.js', array('jquery'));
}
if(is_admin()){
    wp_enqueue_script('custom_admin_script',  get_bloginfo('template_url').'/js/admin_script.js', array('jquery'));
}   }

添加动作('init','my_script');

这是我的jQuery文件(admin_script.js):

$(document).ready(function(){
alert("Hello"); });

任何帮助都将是极好的。


考虑到可能存在冲突的情况,我通常会默认使用以下代码来解决问题,并且可以继续使用我的正常代码:(function($){ // all my jQuery using $('selectors') })(jQuery); - David Hobs
2个回答

37

需要注意的是,据我所知,WordPress 中包含的 jQuery 运行在 NoConflict 模式下,这意味着没有 $,而是使用 jQuery。这可能就是你注销了内置的 jQuery 并使用了来自 Google CDN 的 jQuery 的原因。后者可能不会运行在该模式下。

我没有任何 WordPress 经验,所以我可能会犯错误。只需确保内置的 jQuery 可用并加载您的脚本即可。

function my_script() {
    if (!is_admin()) {
        wp_enqueue_script('custom_script', get_bloginfo('template_url').'/js/myScript.js', array('jquery'));
    }
    if(is_admin()){
        wp_enqueue_script('custom_admin_script', get_bloginfo('template_url').'/js/admin_script.js', array('jquery'));
    }   
}

将你的admin_script.js更改为使用jQuery而不是$

jQuery(document).ready(function(){
    alert("Hello"); 
});

看看这是否适用于您。 如果您想使用$,您可以在admin_script.js顶部编写var $ = jQuery;


4
jQuery实际上将自身作为它调用的函数的第一个参数传递,因此您可以编写 jQuery(document).ready(function ($) { $('#blah').click(); }); 等等。当然,您也可以直接编写 jQuery(function ($) { $('#blah').click(); }); - alnorth29

10
你可以像这样做。
<?php add_action( 'admin_enqueue_scripts', 'function_name' ); ?>

这可以像这样使用

<?php 
  add_action( 'admin_enqueue_scripts', 'load_custom_script' ); 
  function load_custom_script() {
      wp_enqueue_script('custom_js_script', get_bloginfo('template_url').'/js/custom-script.js', array('jquery'));
  }
?>

若需要更多帮助,请查看此处的文档。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接