ごめんなさい、キャッシュクリアでは即時反映されないみたいですね・・・。
ご質問の内容とは少し違いますが、即座に正確なサイズを確認したい場合、PHPスクリプトを使ってアップロードディレクトリのサイズを取得する方法があります。
function calculate_uploads_size() {
$uploads_dir = wp_get_upload_dir()['basedir'];
$size = 0;
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($uploads_dir)) as $file) {
if ($file->isFile()) {
$size += $file->getSize();
}
}
return size_format($size);
}
// ショートコードで結果を表示する
add_shortcode('uploads_size', function() {
return 'アップロードディレクトリのサイズ: ' . calculate_uploads_size();
});
上記コードをfunctions.php
に記載の上、ショートコード[uploads_size]
を固定ページや投稿に挿入すると、現在のアップロードディレクトリサイズが以下のように表示されます。
アップロードディレクトリのサイズ: xx MB
よろしければお試しください。
早速の返信ありがとうございます。
ご回答いただいた内容を試してみたいと思います。
基本的にはサイトヘルスの内容は即時反映されると思っていていいのでしょうか?
RELOADとかは必要になるかとは思いますが…
サイトヘルスに反映されるタイミングは分かりませんでした。すみません〜。
キャッシュの効いていない状態の検証環境でいろいろ試しましたが、即時反映されません。
他の有識者から回答があるかもしれませんので、お待ちになってみてください。
お忙しい中、色々とご確認いただきありがとうございます。
他の方からの回答も待ってみたいと思います。
どうもありがとうございます!
/wp-includes/functions.php
のrecurse_dirsize()
とclean_dirsize_cache()
関数でキャッシュの期限が10年先の日付で保存される為、この値が更新されるまでサイトヘルス情報のディレクトリとサイズの容量のデータは10年先まで変わらないようです。
どのタイミングでこのキャッシュが更新されるのかまではコードを追ってませんが、以下のコードをテーマのfunctions.php
に追加しておくとメディアをアップロード/削除毎にキャッシュをクリアするので、サイトヘルスのページにアクセスするとリアルタイムで容量は更新されます。
お試しください。
※表記がGBなので小さいファイルが増減した程度では変化は無いと思います
// メディア追加でキャッシュを削除
add_action( 'add_attachment', function() {
set_transient( 'timeout_dirsize_cache', '' );
} );
// メディア削除でキャッシュを削除
add_action( 'delete_attachment', function () {
set_transient( 'timeout_dirsize_cache', '' );
} );
@manbo さん、詳しくありがとうございます。私も勉強させていただきました <(_ _)>
@manbo さん、@setouchikotori さん、色々と調査・情報ありがとうございます。
@manbo さんに教えて頂いたコードを、functions.phpに早速追加してみたいと思います。
ありがとうございます。
@manbo さん、情報ありがとうございました。
functions.php にコードを足してみました。
サイトヘルスを開いた時に「ディレクトリとサイズ」の上でアイコンがクルクルするので
再計算を行っている様ですが、表示される数値は変化なしです(クリップボードにコピー
でバイト数が出ますが、そちらも変化なし)。
LOCAL環境なのが影響しているのかとも思いましたが…
一応、ご連絡まで。よろしくお願いします。
前述の件で追加です。
本日、メディアライブラリーの追加を行った所、きちんとディレクトリサイズが変更されるようになりました。(アイコンの表示時間も長くなってます)
一日空けたのが幸いしているのか不明ですが、表示の値は変更されるようになりました。
ありがとうございました!
はい、了解です。どうもありがとうございましたm(_ _)m