Подтвердить что ты не робот

Как удалить jquery с фронта моего WordPress?

Мой сайт Wordpress немного тяжелый для загрузки. В интерфейсе его включение jQuery излишне. В моем firebug это выглядит так:

jquery.js?ver=1.3.2

и

jquery.form.js?ver=2.02m

Мне не нужны эти данные для меня.

Я рад за то, что они останутся в wp-admin, но я бы хотел, чтобы они не загружали интерфейс.

Я нашел файл, который, по моему мнению, загружает их в wp-includes/script-loader.php, но я не уверен, что нужно раскомментировать или что делать, чтобы полностью удалить его для фронта.

Есть ли способ сделать это, удалив jquery, не разрушая задний конец?

4b9b3361

Ответ 1

JQuery может быть добавлен вашей темой. Если ваша тема добавляет его правильно, она должна использовать функцию wp_enqueue_script(). Чтобы удалить JQuery, просто используйте функцию wp_deregister_script().

wp_deregister_script('jquery');

Удаление JQuery для всего сайта может привести к непредвиденным последствиям для вашего раздела администратора. Чтобы избежать удаления JQuery на страницах администратора, используйте этот код:

if ( !is_admin() ) wp_deregister_script('jquery');

Теперь только страницы, которые не являются страницами администратора, будут запускать функцию wp_deregister_script().

Добавьте этот код в файл functions.php в свой каталог тем.

Ответ 2

Все остальные решения устарели, начиная с wordpress 3.6

add_filter( 'wp_default_scripts', 'change_default_jquery' );

function change_default_jquery( &$scripts){
    if(!is_admin()){
        $scripts->remove( 'jquery');
        $scripts->add( 'jquery', false, array( 'jquery-core' ), '1.10.2' );
    }
}

Ответ 3

Правильный метод полного удаления стиля или script - удалить его и, чтобы отменить его. Следует также отметить, что скрипты переднего конца обрабатываются с помощью wp_enqueue_scripts, в то время как обратные скрипты обрабатываются через admin_enqueue_scripts.

Таким образом, имея в виду, вы можете сделать следующее

add_filter( 'wp_enqueue_scripts', 'change_default_jquery', PHP_INT_MAX );

function change_default_jquery( ){
    wp_dequeue_script( 'jquery');
    wp_deregister_script( 'jquery');   
}

РЕДАКТИРОВАТЬ 1

Это было полностью протестировано в Wordpress версии 4.0 и работает как ожидалось.

РЕДАКТИРОВАТЬ 2

В качестве доказательства концепции вставьте следующий код в свои functions.php. Это напечатает сообщение об успешном завершении или сбое в заголовке вашего сайта, задней части и передней панели.

add_action( 'wp_head', 'check_jquery' );
add_action( 'admin_head', 'check_jquery' );
function check_jquery() {

    global $wp_scripts;

    foreach ( $wp_scripts->registered as $wp_script ) {
        $handles[] = $wp_script->handle; 
    }

    if( in_array( 'jquery', $handles ) ) {
        echo 'jquery has been loaded';
    }else{
        echo 'jquery has been removed';
    }
}

Ответ 4

Посмотрите на свои файлы тем.

сор-содержание/темы/header.php

может содержать файлы .js.

Ответ 5

Wordpress добавляет этот вызов jQuery через тег шаблона с именем <?php wp_head(); ?>, который появляется в большинстве тем, и необходим для работы некоторых плагинов.

Это может раздражать не только из-за загрузки, но и потому, что он может убить ранее загруженный jQuery и может даже помешать некоторым плагинам, которые также пытаются загрузить jQuery.

Быстрое исправление открывает файл header.php в вашем каталоге тем и добавляет:

<?php wp_deregister_script('jquery'); ?>

прямо перед

<?php wp_head(); ?>

Или просто объедините их оба в:

<?php wp_deregister_script('jquery'); wp_head(); ?>

Более техническое объяснение можно найти здесь

Ответ 6

jQuery.js составляет всего 15 КБ, если вы используете минитипированную версию, и они будут полностью отсутствовать, если вы используете тему, которая этого не требует.

Вероятно, вам стоит искать легкую тему без jQuery, а не взломать ее, а затем увидеть разрыв темы в нескольких местах, потому что они ищут эти js файлы.

Ответ 7

Посмотрите на источник вашей отображаемой страницы; Wordpress часто включает jQuery по умолчанию, когда <?php wp_head(); ?> вызывается в header.php, поэтому вы можете видеть jQuery, включенную на ваш сайт.

Если вы удалите <?php wp_head(); ?> в header.php, вы можете потерять другие функции плагина, так как многие плагины "зацепились" за Wordpress в этой точке.

Но включение jQuery не является чем-то большим. Он маленький, и Wordpress зависит от него для некоторых вещей.

Ответ 8

Я смог сэкономить 2,2 секунды с моей скорости загрузки страницы "События", дезарегистрируя jQuery. jQuery приятно иметь, но, на мой взгляд, скорость страницы гораздо важнее.

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

Ответ 9

function my_init() {
    if (!is_admin()) {
        wp_deregister_script('jquery');
        wp_register_script('jquery', false);
    }
}
add_action('init', 'my_init');

Правильно - удаляет jQuery js. Код из других ответов удаляет все js (даже js, которые добавляются ваши установленные плагины)

Протестировано на 4.3.1