WordPressのバージョン情報を自動的に最新版に偽装する

概要説明

カスタマイズの影響でWordPressのコアアップデートができない場合は、バージョン情報を非表示にするか偽装を行うことで旧バージョンを使っていることを隠蔽することができます。実装が行えるかを試しに作ってみた処理なのですが効果については未知数です。

functions.php
/*----------------------------------------------------
 WordPressのバージョン情報を自動的に最新版に偽装する
----------------------------------------------------*/
if ( !function_exists( 'disguise_generator' ) ){
    // 既存のバージョンを非表示
    remove_action( 'wp_head', 'wp_generator');

    function disguise_generator() {

        // APIから最新版のバージョンを取得
        $wp_version = '';
        $core = @file_get_contents('https://api.wordpress.org/core/version-check/1.7/?locale=ja');
        if ( $core ) {
            $core_ary = json_decode($core);
            if ( isset($core_ary->offers['0']->version) ) {
                $wp_version = $core_ary->offers['0']->version;
            }
        }

        if ( $wp_version != '' ) {
            // 最新版のバージョンを出力
            echo '<meta name="generator" content="WordPress '.$wp_version.'" />';
        }
    }
    add_action('wp_head', 'disguise_generator');
}

 

ソースから動作確認

<meta name="generator" content="WordPress 6.4.2" />

最新版のバージョンが表示されていれば実装完了です。

WordPressバージョンを非表示にしたい場合はこちら

キャッシュ機能を使う場合

functions.php
$wp_version = '';
$cache = get_db_cache('wp_version', '86400');
if ( $cache === false ) {
    $core = @file_get_contents('https://api.wordpress.org/core/version-check/1.7/?locale=ja');
    if ( $core ) {
        $core_ary = json_decode($core);
        if ( isset($core_ary->offers['0']->version) ) {
            $wp_version = $core_ary->offers['0']->version;
            set_db_cache('wp_version', $wp_version);
        }
    }
} else {
    $wp_version = $cache;
}

上記のキャッシュ有りの記述に変えることでAPI通信処理は1日1回になります。

WordPress Developer Resources

関連機能

  1. WordPressランダムに1件記事を表示させるショートコード ( カスタム投稿、任意の件数に対応 )

  2. WordPress 管理画面ダッシュボードから更新ボタンを押したタイミングを最終更新日としてページに表示させる

  3. ウィジェットエリアを追加して任意の位置で表示させる

サイドバー

よく使うカスタマイズ

最近の記事

アニメの名言集

人の偉さはわかりづらい
だからああやって着飾って
見た目でわかるようにするんだ

葬送のフリーレン
by フランメ

Profile

PAGE TOP
Amazon プライム対象