ただメモができるだけのブラウザアプリ「TextArea」はこちらw

WordPressのプラグインStaticPressで不要な静的ファイルが生成されないようにする

スポンサーリンク

WordPressのプラグインStaticPressで不要な静的ファイルが生成されないようにする方法を記載します。

WordPressのStaticPressの導入については以下の記事をご参照ください!

StaticPress S3を使用してS3+CloudFrontでコンテンツ配信するケースの導入例

【日本語URL対応版】WordPressのコンテンツを StaticPress S3プラグインを使用して配信する方法
WordPressコンテンツをStaticPressS3を使用してS3+CloudFrontで配信する方法を記載。 コピペで環境構築できます。S3+CloudFrontで配信することで「 低コストで安定したサイト運用ができる」「高速なサイトを構築できる」「セキュリティ的に安全」というメリットがあります。

StaticPressを使用してEC2+CloudFrontでコンテンツ配信するケースの導入例

StaticPressを使ってEC2上のWordPressコンテンツをCloudFront経由で簡単に配信する方法
WordPressのコンテンツを静的ページ化し、CloudFrontで配信できるようにします。静的ページ化するところはWordPressのプラグインStaticPressを使用します。CloudFrontのキャッシュクリアはClear CloudFront Cacheプラグインを使用します

本記事はStaticPressを導入後に、不要な静的ファイルが出力されないようにする方法を記載します。

不要な静的ファイルとは配信サーバに不要なページであるWordPressの管理画面などのHTMLを指します。

不要なファイルを生成されないようにすることで、以下のメリットがあります。

2つのメリット

ディスク容量の削減
StaticPressでの再構築時間の短縮

配信に不要なページについて

配信サーバに不要なページについて、具体的には以下のフォルダを不要と考えています。

配信に不要なフォルダ
  • 配信に不要なフォルダ
    • /wp-admin/*
      • 管理画面。配信不要ページ。
    • /wp-content/plugins/*
      • pluginを管理しているフォルダ。配信時にプラグインは不要(動かさない)。
    • /wp-includes/*
      • API、クラス、関数などのプログラムファイルを管理しているフォルダ。配信時は不要
    • /wp-json/*
      • WordPressのAPIレスポンスを保存するフォルダ。配信サーバ時は不要。
    • /author/*
      • 投稿者ごとのページ。必要な場合は残す。

なぜ対応が必要なのか

改めて、不要なページを出力しないようにする理由について、記載していきます。

配信に不要なページについて、静的HTMLを出力しないようにすることで、以下のメリットがあります。

メリット詳細

<WordPressサーバ(EC2)からみたメリット>
メリット1:EC2ディスク容量の節約できる
メリット2:再構築(HTML生成)時間の短縮


<配信サーバ(S3)からみたメリット>
※WordPressサーバ(EC2)で配信している場合は対象外です。配信サーバにS3を使用している場合、以下のようになります。
WordPressサーバで不要なページについては静的ファイル(HTMLファイル)の生成対象外となるため、StaticPress S3でS3に同期(コピー)対象から不要なページが含まれないようになります。これにより以下のメリットがあります
メリット1:S3 APIの節約に役立ちます
メリット2:S3 ストレージの節約に役立ちます

    それでは、不要な静的ファイルが生成されないようにする方法を記載します。

    不要な静的ファイルが生成されないようにする方法

    生成対象外とする対象のフォルダによって対応方法が異なります。

    まずは、wp-adminwp-includesフォルダを除外する方法を記載します。

    wp-adminwp-includesを静的ファイル生成対象外とする

    修正対象ソース:/wp-content/plugins/staticpress/includes/class-static_press.php

    869行目辺りを以下のように修正する

    次に、以下の静的ファイルを生成されないように対応します。

    ・/wp-content/plugins/*

    ・/wp-json/*

    ・/author/*

    /wp-content/plugins/*/wp-json/*/author/*を静的ファイル生成対象外とする

    修正対象ソース:/wp-content/plugins/staticpress/plugin.php

    
    //以下のソースを追加
    add_action('StaticPress::file_put', 'static_rm', 1, 2);
    function static_rm($file_dest, $url){
      if(strstr($file_dest, '/author/')
        or strstr($file_dest, '/wp-content/plugins/')
        or strstr($file_dest, '/wp-json/')){
    		unlink($file_dest);
      }
    }
    

    動作確認

    以下の対応をした後にStaticPressで再構築をします。

    動作確認準備

    WordPressサーバの静的ファイル出力フォルダをカラにする
    (S3を使用している場合)S3にコピーされたファイルを全て削除する

    StaticPressで再構築後に以下の確認ができればOKです。

    動作確認内容

    WordPressサーバの静的ファイル出力フォルダにファイルが出力されている
    配信用URLにアクセスし、サイトが正常に表示される