Wordpress插件不起作用

时间:2016-06-20 12:30:06

标签: javascript php jquery wordpress

Spin360不起作用: 所有脚本都连接到functions.php

  add_action('wp_footer', 'add_scripts'); 
  function add_scripts() {
    if(is_admin()) return false; 
    wp_deregister_script('jquery');
    wp_enqueue_script('remodal', 'http://code.jquery.com/jquery-3.0.0.min.js','', '',true); 
    wp_enqueue_script('remodal', get_template_directory_uri().'/js/jquery.threesixty.js','','',true); 
    wp_enqueue_script('remodal', get_template_directory_uri().'/js/spinspin.js','','',true); 
  }

Jquery.threesixty.js - > http://www.mathieusavard.info/threesixty/demo.html

Spinspin.js:

jQuery(function($){
    $("#spin").threesixty({images:["...", "..."], method:'click', direction:'forward', sensibility: 1}); 
  });

文章页面:

  <div id="spin"></div> 
  <script> if (window.jQuery) {
     alert('Connected'); //Return Connected 
   }
  </script>

页面 - &gt; http://okwood.by/2016/05/iv78-optima/

3 个答案:

答案 0 :(得分:0)

由于wordpress使用jQuery.noConflict()来防止与可能使用$别名的任何其他库发生冲突,您需要使用$替换代码中的jQuery或隔离代码在IIFE中,如:

;(function($){
   // make sure document is ready
   $(function(){
      $("#spin").threesixty({images
   });
})(jQuery);

OR

jQuery(function($){
   $("#spin").threesixty({images
}); 

答案 1 :(得分:0)

WordPress预先打包了一份jQuery副本,您应该将其与代码一起使用。当加载WordPress的jQuery时,它使用兼容模式,这是一种避免与其他语言库冲突的机制。

您无法在jQuery脚本中使用$,请改为jQuery(将$替换为jQuery)。

像这样包装你的代码

jQuery(document).ready(function( $ ) {
  //Code Here 
});

答案 2 :(得分:0)

Wordpress在noConflict模式下附带jQuery但是当你从CDN加载jQuery时我不认为是这种情况。另一点是wp_enqueue_script()函数的第一个参数是string $handle,每个句柄应该是唯一的。强烈建议定义脚本依赖项以确保加载所需的所有依赖项。试试这个例子:

wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://code.jquery.com/jquery-3.0.0.min.js', [], false, true );
wp_register_script( 'threesixty', get_template_directory_uri().'/js/jquery.threesixty.js',[ 'jquery' ], false, true );
wp_enqueue_script( 'remodal', get_template_directory_uri().'/js/spinspin.js', [ 'threesixty' ], false, true ); 

非常重要的是,wp_enqueue_scripts是排队项目时使用的正确挂钩,而不是wp_footer