いつのバージョンからか。最近のワードプレスでは <?php wp_head(); ?> のときに「mediaelementplayer-legacy.min.css」と「wp-mediaelement.min.css」というスタイルシートが読み込まれる仕様になっています。

また同じように JavaScript も「mediaelement-and-player.min.js」「mediaelement-migrate.min.js」「wp-mediaelement.min.js」「vimeo.min.js」の4つが読み込まれています。

  • mediaelementplayer-legacy.min.css
  • wp-mediaelement.min.css
  • mediaelement-and-player.min.js
  • mediaelement-migrate.min.js
  • wp-mediaelement.min.js
  • vimeo.min.js

実際に出力されているコードを見ると次のとおり。

CSS類

<link rel='stylesheet' id='mediaelement-css' href='https://example.com/wordpress/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css' type='text/css' media='all'/>
<link rel='stylesheet' id='wp-mediaelement-css' href='https://example.com/wordpress/wp-includes/js/mediaelement/wp-mediaelement.min.css' type='text/css' media='all'/>

JavaScript類

<script src='https://example.com/wordpress/wp-includes/js/mediaelement/mediaelement-and-player.min.js' id='mediaelement-core-js'></script>
<script src='https://example.com/wordpress/wp-includes/js/mediaelement/mediaelement-migrate.min.js' id='mediaelement-migrate-js'></script>
<script src='https://example.com/wordpress/wp-includes/js/mediaelement/wp-mediaelement.min.js' id='wp-mediaelement-js'></script>
<script src='https://example.com/wordpress/wp-includes/js/mediaelement/renderers/vimeo.min.js' id='mediaelement-vimeo-js'></script>

これらmediaelement系のCSSとJavaScriptは、ワードプレスの投稿や固定ページで動画を埋め込んでいるような場合を除き、通常は不要なんですよね。

そんなわけで今回は、これらのCSSとJavaScriptを削除する方法を紹介します。

functions.php にコードを記述

やり方は簡単です。
使用しているテーマファイル内の functions.php に次のコードを記述するだけ。

function custom_deregister_mediaemlements() {
	wp_deregister_style('wp-mediaelement');
	wp_deregister_script('mediaelement');
}
add_action('wp_enqueue_scripts','custom_deregister_mediaemlements', 100);

これで上記すべての余分なCSSとJavaScriptの出力を無効化できます。

特定のページだけは読み込みたい場合

もし「投稿ページだけではmediaelement系ライブラリを読み込みたい!」という場合は、次のように記述しましょう。

function custom_deregister_mediaemlements() {
	if(! is_singular("post") ) {
		wp_deregister_style('wp-mediaelement');
		wp_deregister_script('mediaelement');
	}
}
add_action('wp_enqueue_scripts','custom_deregister_mediaemlements', 100);

上記のコード内、if(! is_singular("post") ) {} は「投稿以外のとき」を意味します。

ぜひお試しください。