• 解決済 ninomiya

    (@ninomiya)


    サイトヘルスの情報タブのディレクトリサイズの情報を利用しています。
    メディアライブラリで画像を消しても「アップロードディレクトリ」のサイズが一向に変化しません。
    この情報の更新タイミングはあるのでしょうか?
    もし、こうすれば更新されるという情報があれば教えて頂きたいです。
    よろしくお願いします。

    因みにLOCAL環境でも使っていますので、通常のサイトとの違いもあれば教えて頂けると幸いです。

    • このトピックはninomiyaが2ヶ月前に変更しました。
12件の返信を表示中 - 1 - 12件目 (全12件中)
  • モデレーター 瀬戸内ことり (Setouchi Kotori)

    (@setouchikotori)

    キャッシュクリアはお試しになりましたか?

    モデレーター 瀬戸内ことり (Setouchi Kotori)

    (@setouchikotori)

    ごめんなさい、キャッシュクリアでは即時反映されないみたいですね・・・。

    ご質問の内容とは少し違いますが、即座に正確なサイズを確認したい場合、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

    よろしければお試しください。

    トピック投稿者 ninomiya

    (@ninomiya)

    早速の返信ありがとうございます。
    ご回答いただいた内容を試してみたいと思います。
    基本的にはサイトヘルスの内容は即時反映されると思っていていいのでしょうか?
    RELOADとかは必要になるかとは思いますが…

    モデレーター 瀬戸内ことり (Setouchi Kotori)

    (@setouchikotori)

    サイトヘルスに反映されるタイミングは分かりませんでした。すみません〜。

    キャッシュの効いていない状態の検証環境でいろいろ試しましたが、即時反映されません。

    他の有識者から回答があるかもしれませんので、お待ちになってみてください。

    トピック投稿者 ninomiya

    (@ninomiya)

    お忙しい中、色々とご確認いただきありがとうございます。
    他の方からの回答も待ってみたいと思います。
    どうもありがとうございます!

    manbo

    (@manbo)

    /wp-includes/functions.phprecurse_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', '' );
    } );
    モデレーター 瀬戸内ことり (Setouchi Kotori)

    (@setouchikotori)

    @manbo さん、詳しくありがとうございます。私も勉強させていただきました <(_ _)>

    トピック投稿者 ninomiya

    (@ninomiya)

    @manbo さん、@setouchikotori さん、色々と調査・情報ありがとうございます。
    @manbo さんに教えて頂いたコードを、functions.phpに早速追加してみたいと思います。
    ありがとうございます。

    トピック投稿者 ninomiya

    (@ninomiya)

    @manbo さん、情報ありがとうございました。
    functions.php にコードを足してみました。
    サイトヘルスを開いた時に「ディレクトリとサイズ」の上でアイコンがクルクルするので
    再計算を行っている様ですが、表示される数値は変化なしです(クリップボードにコピー
    でバイト数が出ますが、そちらも変化なし)。
    LOCAL環境なのが影響しているのかとも思いましたが…
    一応、ご連絡まで。よろしくお願いします。

    トピック投稿者 ninomiya

    (@ninomiya)

    前述の件で追加です。
    本日、メディアライブラリーの追加を行った所、きちんとディレクトリサイズが変更されるようになりました。(アイコンの表示時間も長くなってます)
    一日空けたのが幸いしているのか不明ですが、表示の値は変更されるようになりました。
    ありがとうございました!

    manbo

    (@manbo)

    解決したならステータスを解決済みにしてくださいね

    トピック投稿者 ninomiya

    (@ninomiya)

    はい、了解です。どうもありがとうございましたm(_ _)m

12件の返信を表示中 - 1 - 12件目 (全12件中)
  • このトピックに返信するにはログインが必要です。