WordPressを使用しているとHTMLソースの中にWordpressのバージョン情報が記載されています。
常に最新バージョンに更新をしている場合はあまり問題は無いですが、古いバージョンのまま更新しないで使用していると使用しているバージョンが分かってしまい、サイトの改ざんなどの悪意のある攻撃を受けてしまったりとセキュリティ面で問題となります。
今回は、このWordpressのバージョン情報を非表示にする方法を解説していきます。
※今回の変更にはfunctions.phpを使用します。functions.phpを変更する場合は、記述を間違ってしまうと画面が白くなり何も表示されなかったり、エラーが出てしまう場合がありますのでバックアップを必ず取るようにしてください。
HTMLソース内に記載されるWordpressのバージョン情報について
HTML内に記載されるWordpressのバージョン情報は以下の3種類あります。
- head要素内のmeta要素で出力されるバージョン情報
- RSSフィードに出力されるバージョン情報
- CSSやJSファイルに出力されるバージョン情報
それぞれどのような形で出力されているかは以下をご確認ください。
head要素内のmeta要素
以下のようにhead要素内のmeta要素にgenerator属性で出力されます。
<meta name="generator" content="WordPress 6.8.1" />
RSSフィード
RSSフィードが有効になっているサイトではURLの最後に「/feed」と入力するとページの情報が表示されます。その中に以下のような形で出力されます。
<generator>https://wordpress.org/?v=6.8.1</generator>
CSSやJSファイル
WordPress関数のwp_head()やwp_foot()などで出力されるCSSやJSファイル名の後ろに以下のように出力されます。
<link rel='stylesheet' id='wp-block-library-css' href='http://localhost/cdgtest/wp-includes/css/dist/block-library/style.min.css?ver=6.8.1' type='text/css' media='all' />
<script type="text/javascript" src="http://localhost/cdgtest/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
出力されるこれらのWordpressのバージョン情報を非表示にしていきます。
meta要素のバージョン情報を非表示にする方法
meta要素のバージョン情報を非表示にするにはfunctions.phpに以下のように記述します。
remove_action('wp_head','wp_generator');
これで、先程のgenerator属性を持つmeta要素が出力されなくなります。
RSSフィードのバージョン情報を非表示にする方法
次に、RSSフィードのバージョン情報を非表示にするにはfunctions.phpに以下のように記述します。
add_filter('the_generator','__return_empty_string');
上記の記述で、RSSフィードにWordpressのバージョン情報は出力さなくなります。
CSSやJSのバージョン情報を非表示にする方法
続いて、Wordpress関数のwp_head()やwp_foot()などで出力されるCSSやJSファイル名の後ろに出力されるバージョン情報を非表示にするにはfunctions.phpに以下のように記述します。
function remove_wp_version($src) {
if (strpos($src,'ver='))
$src = remove_query_arg('ver',$src);
return $src;
}
add_filter('script_loader_src','remove_wp_version',9999);
add_filter('style_loader_src','remove_wp_version',9999);
上記の記述でCSSやJSファイル名にWordpressのバージョン情報が追加されなくなります。
まとめてfunctions.phpに記載する
上記で解説した各Wordpressのバージョン情報を非表示にする方法ですが、非表示にする場合はすべて非表示にするかと思いますので、functions.phpにまとめて記述するのがおすすめです。
記述の仕方は以下を参考にしていただければと思います。
//meta要素からWordpressのバージョン情報を削除
remove_action('wp_head','wp_generator');
//RSSフィードからWordpressのバージョン情報を削除
add_filter('the_generator','__return_empty_string');
//CSSやJSからWordpressのバージョン情報を削除
function remove_wp_version($src) {
if (strpos($src,'ver='))
$src = remove_query_arg('ver',$src);
return $src;
}
add_filter('script_loader_src','remove_wp_version',9999);
add_filter('style_loader_src','remove_wp_version',9999);
さいごに
いかがでしたでしょうか。
今回は、Wordpressのバージョン情報を非表示にする方法について解説しました。
WordPressは常に最新の状態のすることが望ましいですが、いろいろと事情もあり出来ないこともあります。そういった場合のセキュリティ対策として、絶対ではありませんが簡単にできる対策の1つとなりますので実施してみてはいかがでしょうか。