概要説明
特定のページでしか使用しないJSや標準またはプラグインで読み込んでいるCSSを使わない場合に読み込ませないようにするためのカスタマイズ。パフォーマンスチューニングで使うことが多いテクニックです。
~ 目次 ~
CSSを読み込ませないようにする
/wp-includes/css/dist/block-library/style.min.css を読み込ませないようにする場合
/*----------------------------------------------------
特定のCSSを読み込ませないようにする
----------------------------------------------------*/
if ( !function_exists( 'my_dequeue_plugins_style' ) ){
function my_dequeue_plugins_style() {
wp_dequeue_style( 'wp-block-library' );
}
add_action( 'wp_enqueue_scripts', 'my_dequeue_plugins_style', 100 );
}
CSSハンドル名の調べ方
サンプルで指定している「wp-block-library」の部分の調べ方は
<link rel='stylesheet' id='wp-block-library-css' href='...' />
idの-cssを削除した文字列がハンドル名です
JSを読み込ませないようにする
/js/slick.min.jsを読み込ませないようにする場合
/*----------------------------------------------------
特定のJSを読み込ませないようにする
----------------------------------------------------*/
if ( !function_exists( 'my_dequeue_plugins_scripts' ) ){
function my_dequeue_plugins_scripts() {
wp_dequeue_script( 'slick-script' );
}
add_action( 'wp_enqueue_scripts', 'my_dequeue_plugins_scripts', 100 );
}
JSハンドル名の調べ方
<script type="text/javascript" id="slick-script-js" src="..." ></script>
idの-jsを削除した文字列がハンドル名です
設定しても非表示にならない場合
ソースに直接タグを書いていると上記方法では非表示にできないためその時はソース上の記述を見直しましょう
下の 1 行のコードは、上の例と同じように、wp_enqueue_scripts に付けた関数の中に書きます(functions.php にそのまま書くと、読み込みの前に動いてしまいます)。
※ wp_deregister_script() は登録そのものを消すので、そのスクリプトを使っているほかのスクリプトも出なくなります。読み込ませないだけなら wp_dequeue_script() で十分です。
wp-polyfill-inert.min.js の無効化
wp_deregister_script( 'wp-polyfill-inert' );
※ wp-polyfill が wp-polyfill-inert を使っているので、消すと wp-polyfill と、それを使うブロックやプラグインのスクリプトも出なくなります。画面の動きが変わらないかを確かめてから使ってください。
enlighterjs.min.css,enlighterjs.min.js の無効化
wp_deregister_script( 'enlighterjs' ); wp_dequeue_style( 'enlighterjs' );
comment-reply.min.js の無効化
wp_deregister_script( 'comment-reply' );
hoverintent-js.min.js の無効化
wp_deregister_script( 'hoverintent-js' );
※ 管理バー(admin-bar)が hoverintent-js を使っているので、ログイン中は管理バーのメニューが開かなくなります。ログインしていない人のときだけ止めるなら、if ( ! is_user_logged_in() ) の中に書きます。


