ワードプレスで外部CSSやjsの読み込みコードからtype属性を消す方法

ワードプレスで外部CSSやjsの読み込みコードからtype属性を消す方法
2018年11月20日2020年11月7日
この記事は最終更新から4年以上経過しています。内容が古くなっている可能性があります。

最近は、外部CSSやjsの読み込み時にtype=”text/javascript”とか、type=”text/css”などとtype属性を出力していると、W3Cのバリデーターなどでエラーが出ます。HTML5では書かなくていいですよって事なんですが、これがエラーとなります。エラーって言われると、やはり消したいですよね。

普通のサイトなら、記述しなければいいだけなのですが、ワードプレスの場合は勝手に書き出されているのでちょっと面倒です。私の知る限りでは、Ver.4.9.8現在では直接type属性を記述するかどうかを指定する方法はないと思います。という事で、今回はワードプレスで外部CSSやjsの読み込みコードの不要なtype属性を消去する方法です。

script_loader_tag / style_loader_tag

ソースは割愛しますが、基本的にはscript_loader_tagstyle_loader_tagといったフックを使用しても削除できます。

ですが、この方法だと使用中のプラグイン内から読み込んでいるスクリプトやCSSのtype属性を削除できません。いくらやっても、type属性が残ってしまい、エラーが消えません。

読み込みコードのtype属性を消すコード

本題のtype属性の消し方ですが、下のコードをこのまんま使用中のテーマのfunctions.phpに貼り付けましょう。貼り付け位置は最終行で大丈夫ですが、最終行に”?>”と書かれた行がある場合はその行を消さないように注意して、その前に貼り付けましょう。

いったん出力せずに内部バッファに文字列として保存しておいて、PHPの実行終了直前に書き換えて出力する…みたいな事をやっています(だと思います…)。いろいろな環境で使用していますが、今のところすべて綺麗さっぱり消えてくれます。エラーもスッキリです。

最後に

無事に不要なtype属性は取り除けましたでしょうか。

はっきり言って、こんなのエラーでもなんでもありません。そもそも「省略しちゃってもいいよ♪」って事なので、気にする必要はまったくありません。

「どーしても気になる!」という几帳面な方やマニアの方、何を思ったかクライアントが消せと言い出しちゃった場合などなど、消す必要が発生してしまった時だけにしましょう。書いておいて何なんですが、こんな事をする必要は一切ありません。

そのうち、wp_enqueue_scriptやwp_enqueue_styleにタイプ属性を付けるか付けないかみたいなパラメータが追加されるといいですよね。

参考サイト

このページで記載したコードは、下のページの情報を参考にして(パクって)います。関数名くらい適当に書き換えればオリジナル感が出るのですが、ありがたく使わせて頂いているので、正直に書かせて頂いています。英語ですが、気になる方はどうぞ。

https://stackoverflow.com/questions/50274344/remove-type-attribute-from-script-and-style-tags-added-by-wordpress-plugins

関連のある記事

カスタム投稿タイプのクイック編集が無効にならない時に確認してみること【ワードプレス】

記事を読む

オリジナルのユーザー権限グループのユーザーが「作成者」に表示されない場合の対処方法【ワードプレス】

オリジナルのユーザー権限グループのユーザーが「作成者」に表示されない場合の対処方法【ワードプレス】

記事を読む

親メニューなどをリンク無しに出来ない時の解決方法【ワードプレス】

親メニューなどをリンク無しに出来ない時の解決方法【ワードプレス】

記事を読む

ショートコードでWarning: Illegal string offsetエラーが出る時の解決策

ショートコードでWarning: Illegal string offsetエラーが出る時の解決策【ワードプレス】

記事を読む

抜粋の末尾に付く&ltとか&nbsとか&gtやらを削除する方法【ワードプレス】

抜粋の末尾に付く&ltとか&nbsとか&gtやらを削除する方法【ワードプレス】

記事を読む

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

目次へ