Intereting Posts
Получить условия таксономии по порядку даты их публикации? новый WP_Query, основанный на средних значениях мета-полей Как ограничить количество пользователей ролью Как разрешить пользовательской роли пользователя создавать, редактировать, удалять только определенный тип сообщений? Изменение размера изображения в миниатюре, малые, средние и большие варианты greyed out Уменьшить загрузку файла в Media Нужна помощь в установке дочерней темы Хоффмана Захват после создания мета Пользовательские поля не восстанавливаются до предыдущих версий get_post_field – Заголовок без абзаца Смещение сообщения в цикле с использованием PageNavi Plug-in Статическая страница с последними сообщениями разбивки на страницы Как отображать продукт с двумя стандартами, категорией и таксономией бренда Правильный метод запуска скриптов с зависимостями без очереди? Оптимизация запросов WordPress – удаление группы по идентификатору

Как исправить мою старую тему, чтобы она правильно загружала jQuery

У меня есть более старая тема, которая загружает jQuery «вручную», и это конфликтует со всеми плагинами, которые пытаются использовать jQuery. Следующие строки включены в заголовок темы:

<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/jquery-1.3.2.min.js"></script> <script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/jquery.inputs.js"></script> <script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/jquery.scrollpane.js"></script> <script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/jquery.mousewheel.js"></script> <script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/jquery.easing.1.3.js"></script> <script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/jquery.lightbox-0.5.js"></script> <script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/swfobject.js"></script> <script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/functions.js"></script> 

Я понимаю, что я должен называть собственный WordPress-крючок для загрузки этих файлов, но я не знаю конкретных шагов для этого. Вы можете помочь? Извините за мою беззаботность.

Принимая во внимание общий ответ, так как у нас нет (пока?) Доступа к конкретной теме.

Примечание. Все эти изменения могут, а возможно, и должны быть реализованы с помощью Child Theme.

Во-первых, вам нужно удалить ВСЕ эти строки из header.php . Скрипты должны быть помещены в очередь , а не жестко закодированы в шаблоне.

Затем вам нужно добавить следующие functions.php :

 <?php function wpse35169_enqueue_scripts() { // Enqueue WP-core bundled scripts wp_enqueue_script( 'jquery' ); wp_enqueue_script( 'swfobject' ); // Enqueue custom scripts wp_enqueue_script( 'jquery-inputs', get_template_directory_uri() . '/js/jquery.inputs.js', array( 'jquery' ) ); wp_enqueue_script( 'jquery-scrollpane', get_template_directory_uri() . '/js/jquery.scrollpane.js', array( 'jquery' ) ); wp_enqueue_script( 'jquery-mousewheel', get_template_directory_uri() . '/js/jquery.mousewheel.js', array( 'jquery' ) ); wp_enqueue_script( 'jquery-easing', get_template_directory_uri() . '/js/jquery.easing.1.3.js', array( 'jquery' ) ); wp_enqueue_script( 'jquery-lightbox', get_template_directory_uri() . '/js/jquery.lightbox-0.5.js' ); wp_enqueue_script( 'wpse35169-functions', get_template_directory_uri() . '/js/functions.js' ); } // Hook into 'wp_enqueue_scripts' add_action( 'wp_enqueue_scripts', 'wpse35169_enqueue_scripts' ); ?> 

Если вам нужен конкретный порядок зависимости / загрузки для лайтбоксов или functions.js, просто добавьте соответствующий массив $deps к wp_enqueue_script() .

Это должно решить вашу проблему, но опять же, не зная, какую тему вы используете, я не могу быть на 100% уверен.

Добавьте следующий код в свой файл functions.php для каждого скрипта:

 wp_enqueue_script('handle', get_bloginfo('stylesheet_directory').'/path/to/script.js', array('dependencies')); 

например:

 wp_enqueue_script('jquery', get_bloginfo('stylesheet_directory').'/js/jquery-1.7.1.min.js'); 

Зависимости предназначены только для скриптов, которые зависят от других скриптов (сценариев), поэтому вы должны заполнить «jquery» для всех скриптов, которые нуждаются в jQuery.

Ссылка: http://codex.wordpress.org/Function_Reference/wp_enqueue_script

Я бы использовал копию jQuery Google вместо связанных версий WordPress. Основным преимуществом является то, что большинство сайтов используют код Google, поэтому вашим пользователям не придется загружать другую копию jquery, поскольку они могут просто использовать кешированный скрипт.

  // Load jQuery if ( !is_admin() ) { wp_deregister_script('jquery'); wp_register_script('jquery', ("https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"), false); wp_enqueue_script('jquery'); } 

Оттуда я ввел в очередь ваши пользовательские скрипты, как это предложил Чип.

Забавный новый способ регистрации и постановки в очередь ваших сценариев. Также упрощает добавление и удаление новых скриптов, когда это необходимо.

 /** * Registers javascript using wp_register_script * * '$handle' => array( * 'remote' => boolean (true|false), //optional default false * 'src' => 'file_name.js', //string required * 'deps' => 'dependencies', //string optional * 'footer' => boolean (true|false) //optional default false */ function scripts() { $deregister = array( 'jquery' => array() ); $scripts = array( 'jquery' => array( 'remote' => true, 'src' => 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', 'deps' => null, ), 'jquery.cycle' => array( 'remote' => false, 'src' => 'jquery-cycle/jquery.cycle.min.js', 'deps' => 'jquery' ), 'jquery.jcarousel' => array( 'remote' => false, 'src' => 'jquery.jcarousel.min.js', 'deps' => 'jquery' ), 'functions' => array( 'src' => 'functions.js', 'deps' => 'jquery', 'footer' => true, ) ); foreach ( $deregister as $key => $handle ) : if ( ! is_admin() ) : wp_deregister_script( $key ); endif; endforeach; foreach ( $scripts as $key => $value ) : if ( is_admin() ) return; if ( is_array( $value ) && array_key_exists( 'src', $value ) ) : $src = !empty( $value[ 'remote' ] ) ? $value[ 'src' ] : THEME_JS_URI . $value[ 'src' ]; if ( ! $value['deps'] == null ) : wp_register_script( $key, $src, $value[ 'deps' ], false, !empty( $value[ 'footer' ] ) ); else : wp_register_script( $key, $src, false, !empty( $value[ 'footer' ] ) ); endif; else : wp_register_script( $key, THEME_JS_URI . $src, $value, false ); endif; wp_enqueue_script( $key ); endforeach; }