为什么我使用自定义主题打开WordPress页面时会出现此JQuery错误?

时间:2016-02-27 18:57:13

标签: php jquery wordpress content-management-system wordpress-theming

我是 WordPress 开发人员的新手,我遇到以下问题。

我自己从0开始创建本网站的模板:http://www.asper-eritrea.com

现在我已添加此照片库插件:https://wordpress.org/plugins/robo-gallery/

现在的问题是,当我访问使用此插件的页面时,例如:http://www.asper-eritrea.com/photo-gallery/

未显示图库,并且在 FireBug控制台中,我收到以下错误消息:

TypeError: $ is not a function
    $(document).ready(function() {

所以我认为它可能依赖于它无法检索 JQuery 的事实,但我绝对不确定它,因为我也有同样的错误也打开了其他页面我的网站所以我不确定JQuery在照相馆页面中的缺失是导致我的问题的原因。

在我的模板的 function.php 文件中,我有以下函数,以这种方式排列所有JavaScript资源(包括JQuery):

/* Hooks a function on to a specific action (an action is a PHP function that is executed at specific
 * points throughout the WordPress Core)
 * @param 'wp_enqueue_scripts': The name of the action to which 'wpb_adding_styles' is hooked (wp_enqueue_scripts
 *        is the proper hook to use when enqueuing items that are meant to appear on the front end)
 */
add_action('wp_enqueue_scripts', 'wpb_adding_styles');

/* Function automatically executed by the hook 'load_java_scripts':
 * 1) Load all my JavaScripts
 */
function load_java_scripts() {

    // Load JQuery:
    wp_enqueue_script('jquery');
    // Load FlexSlider JavaScript
    wp_enqueue_script('flexSlider-js', get_template_directory_uri() . '/assets/plugins/flexslider/jquery.flexslider.js', array('jquery'), 'v2.1', true);
    // Load bootstrap.min.js:
    wp_enqueue_script('bootstrap.min-js', get_template_directory_uri() . '/assets/bootstrap/js/bootstrap.min.js', array('jquery'), 'v3.0.3', true);

    // Load FancyBox:
    wp_enqueue_script('fancy-js', get_template_directory_uri() . '/assets/plugins/fancybox/jquery.fancybox.pack.js', array('jquery'), 'v2.1.5', true);
    // Load scripts.js:
    wp_enqueue_script('myScripts-js', get_template_directory_uri() . '/assets/js/scripts.js', array('jquery'), '1.0', true);
    // Load Modernizer:
    wp_enqueue_script('myodernizer-js', get_template_directory_uri() . '/assets/js/modernizr.custom.js', array('jquery'), '2.6.2', true);

}

add_action('wp_enqueue_scripts', 'load_java_scripts');

那有什么不对?我错过了什么?

奇怪的是,将JQuery排入队列:

wp_enqueue_script('jquery');

但是没有指定Jquery源文件的确切文件夹(与其他资源一样)。

我把JQuery推入了 /assets/bootstrap/js/jquery.js 文件。

1 个答案:

答案 0 :(得分:1)

Wordpress通常包含jQuery.noConflict(),用于删除$别名以防止与其他可能正在使用$

的库发生冲突

更改:

 $(document).ready(function() {

jQuery(document).ready(function($) {

     // OK to use `$` here
相关问题