WordPressで出力されるJavaScriptタグからid属性を取り除く方法

WordPressで生成されたページからは、多くのJavaScriptが呼び出されます。

それらのJavaScriptは、基本的に、次のようなscriptタグで読み込まれます。

<script src="https://example.com/wp-includes/blocks/navigation/view.min.js?ver=c24330f635f5cb9d5e0e" id="wp-block-navigation-view-js"></script>

このscriptタグにはid属性として「wp-block-navigation-view-js」が指定されていますが、この情報は普通必要ありません。

むしろWordPressを使っていることが外部にわかりやすくなり、セキュリティ上のリスクもあります。

そこで、どうしたらこのid属性を消すことができるのかご紹介します。

scriptタグのid属性を取り除く方法

scriptタグからid属性を取り除く方法はとても簡単で、下記のコードをテーマのfunctions.phpに追記するだけ。

add_filter('script_loader_tag', 'remove_id_from_script_link', 10);
function remove_id_from_script_link($html) {
    return preg_replace( "/ id='.*'/", '', $html );
}

WordPressフック「script_loader_tag」

このコードではWordPressフック「script_loader_tag」を使用しています。

script_loader_tagは、WordPressが生成するscriptタグに対して処理を追記することのできるフックです。

上記のコードでは、そのフックを利用して、WordPressが生成したscriptタグのうち、id属性の部分を取り除くようにしています。

id属性を変更することもできる

この「script_loader_tag」フックを使えば、id属性を単に取り除くだけではなくて、id属性を変更して出力することもできます。

たとえば「wp-block-navigation-view-js」を「block-navigation-view」に変更するなど。

使い方次第では、テーマやプラグイン開発時のデバッグにも役立ちそうですね。