Остановите Wordpress от автоматической вставки скриптов - PullRequest
0 голосов
/ 02 сентября 2010

Есть ли способ запретить Wordpress автоматически вставлять скрипты в мою тему из wp-includes / js?Немного раздражает, что я могу использовать / выбрать, чтобы добавить свое.

Спасибо!


На самом деле это не jquery, а scriptaculous.js и effect.js и по какой-то причинеони мешают jquery.Было бы то же самое, просто положив:

add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 );

function my_deregister_javascript() {
    wp_deregister_script( 'scriptaculous' );
    wp_deregister_script( 'effects' );
}

Спасибо!

1 Ответ

3 голосов
/ 02 сентября 2010

Большинство скриптов (т.е. jQuery) ставятся в очередь подключаемыми модулями, которые зависят от них.Поскольку jQuery поставляется с WordPress, это позволяет легко распространять простой и легкий плагин и просто вызывать скрипт из wp-includes/js, используя wp_enqueue_script('jquery').На самом деле, это рекомендуемый способ включения сценариев на вашем сайте (не знаю, как вы используете / выбираете свой собственный, но это второстепенный вопрос).

Чтобы удалить сценарии по умолчанию, вы можете использовать аналогичныйпозвоните по номеру: wp_deregister_script('jquery');.Это удалит скрипт с именем «jquery» из очереди, и он не будет включен.Вот полный код, который вы поместите в файл functions.php:

add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 );

function my_deregister_javascript() {
    wp_deregister_script( 'jquery' );
}

Имейте в виду, однако, что некоторые плагины могут все еще зависеть от этого скрипта.Когда вы регистрируете скрипт, вы обычно добавляете любые зависимости прямо при регистрации ... так что, если скрипт зависит от jQuery и вы удалили его вот так ... тогда вы в конечном итоге сломаете плагин, потому что другие скриптыне будут включены на страницу (даже если вы вручную добавили jQuery через тег <script></script> на сайте.

Чтобы избежать этого, вам потребуется использовать механизм регистрации / постановки в очередь WordPress, чтобы повторнодобавьте свою собственную версию jQuery:

add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 );

function my_deregister_javascript() {
    wp_deregister_script( 'jquery' );
    wp_enqueue_script( 'jquery', PATH_TO_YOUR_JQUERY_VERSION, '', '1.4.2');
}

Это повторно добавит jQuery (я предполагаю, что вы используете версию 1.4.2, но замените номер версии там тем, что вы используете) и поставите в очередьвыполните резервное копирование в системе. Затем все зависимости должны быть удовлетворены, и все должно работать как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...