2009-07-21 13 views
25

私のWordPressのサイトはダウンロードするには少し重いです。フロントエンドで、不必要にjqueryを含む。私のワードプレスの前面からjqueryを削除するにはどうすればよいですか?

jquery.js?ver=1.3.2 

jquery.form.js?ver=2.02m 

私はこれらを必要としないが、私のために含まれる:私のFirebugのでは、それは次のようになります。

私はそれらがwp-adminに残ってうれしいですが、フロントエンドにロードしないようにしたいと思います。

wp-includes/script-loader.phpにロードしていると思われるファイルが見つかりましたが、コメントを外すには何をすべきか、フロントに完全に削除するにはどうすればよいかわかりません。

バックエンドを台無しにすることなくjqueryを削除する方法はありますか?

答えて

26

テーマによってJQueryが追加されている可能性があります。テーマが正しく追加されている場合は、wp_enqueue_script()機能を使用しているはずです。 JQueryを削除するには、単にwp_deregister_script()関数を使用します。

wp_deregister_script('jquery'); 

サイト全体でJQueryを削除すると、管理セクションに予期しない結果が生じることがあります。あなたの管理者ページにはJQueryを削除しないようにするには、代わりにこのコードを使用します。管理者ページはwp_deregister_script()機能が実行されますされていません

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

今だけのページを。

このコードをテーマディレクトリのfunctions.phpファイルに追加します。

+2

これは現在古くなっています。以下の私の解決策を見てください。 – deweydb

+0

もう動作しません。 deweydbの答えは正しいです。 – danielwinter

+0

しかし、これはまた、プラグインのjsを削除します – user25

4

テーマファイルを調べます。

のwp-コンテンツ/テーマ/ header.phpの

の.jsファイルを含むことができます。

3

jQuery.jsは、縮小版を使用している場合はわずか15KBです。テーマが不要なテーマを使用している場合は、これらは完全になくなります。

jQueryを使わずに軽量テーマを探して、ハッキングするのではなく、それらのjsファイルを探しているので、いくつかの場所でテーマのブレークを見てください。

+0

jQuery.jsでテスト

は大体そのサイズでありますGZipで jQuery.form.jsは、非圧縮と未圧縮の22Kです。 –

+0

15KBと22KBの違いは目立った違いではありません。 –

3

レンダリングされたページのソースを見てください。 Wordpressには、header.phpで<?php wp_head(); ?>が呼び出されたときにデフォルトでjQueryが含まれることがあります。そのため、サイトにjQueryが含まれているのを見ることができます。

header.phpにある<?php wp_head(); ?>を削除すると、その時点で多くのプラグインがWordpressに「フック」しているため、他のプラグインの機能が失われる可能性があります。

しかし、jQueryを含むことはそれほど大きな問題ではありません。それは小さいとWordpressはそれにいくつかのものがあります。

4

Wordpressはほとんどのテーマに表示されるテンプレートタグ<?php wp_head(); ?>でこのjQuery呼び出しを追加します。これはいくつかのプラグインが動作するために必要です。

ロード中だけでなく、以前にロードされたjQueryを強制終了する可能性があり、jQueryもロードしようとするプラグインの途中で邪魔になる可能性があります。

クイックフィックスは、あなたのテーマのディレクトリ内のファイルのheader.phpのをopenning、および追加された:

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

<?php wp_head(); ?> 

前、またはちょうどにそれらの両方を兼ね備え:

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

さらに詳しい説明が見つかりましたhere

1

jQueryの登録を解除することで、「イベント」ページの読み込み速度を2.2秒遅くすることができました。 jQueryはいいですが、私の意見ではページのスピードはずっと重要です。

5秒以上ユーザーがハングアップすることはありません。そのため、jQueryがパフォーマンス上の問題を引き起こしている場合は、「取り除く」と言います。

26

他のすべてのソリューションは、完全にスタイルやスクリプトを削除する正しい方法はにそれをデキューし、登録を解除することですワードプレス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'); 
    } 
} 
+1

これはWP 4.1で機能しました。ありがとう:) – thednp

+0

ようやく!ありがとうございました。 –

17

のよう時代遅れになりました。フロントエンドスクリプトは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'); 
} 

EDIT 1

を行うことができ、予想通りこれは完全にWordpressのバージョン4.0と取り組んでテストされています。

EDIT 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'; 
    } 
} 
+0

また、すべてのプラグインのjsを削除します – user25

+0

June 2017:私はこの回答の一部をプラグインにロールバックしました:https://github.com/jonathanbell/remove-jquery-wordpress-plugin – jonathanbell

1
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

関連する問題