島根県の温泉津温泉にある薬師湯の外観
代替
島根県の温泉津温泉にある薬師湯の外観

WordPressで画像管理

2023年04月29日作成2023年05月25日更新

当サイトでは、WordPressをヘッドレスで使っています。
今回は、ヘッドレスWordPressで問題になりがちな、画像管理の方法をまとめます。

ヘッドレス利用でなくても、単に画像管理したい場合にも使える方法だと思います。

なお、当サイトはプラグインを使わない方法を採用していますが、プラグインを使った場合についても、最後に少しだけ説明しています。

やりたいこと

WordPressに画像をアップロードするとき、初期設定では、 https\://domain.com/サブディレクトリ/wp-content/uploads/年/月/ファイル名.webp というような画像URLになると思います。

しかし、これではWordPressの保存場所が分かってしまって、ヘッドレス化の恩恵が少なくなります。
そこで、このURLを、 https\://domain.com/img/年/月/ファイル名.webp にする方法を探しました。

方法1 wp-admin/options.php

2023年4月現在、検索した範囲では、この方法がもっとも利用されていると思います。

wp-admin 画面で、options.php をURLに追記すると、オプション画面が表示されます。
このオプションで、 upload_path と、 upload_url_path のところを編集すれば、アップロード先を変更できます。

ただし、当サイトの環境だと、新しく「年/月フォルダー」を作成するときに、エラーが出ました。
わたしが利用しているレンタルサーバーのセキュリティ設定が、WordPressと相性が良くないのかもしれません。

その場合、WordPressの左側のメニューから、「設定」の「メディア」を選択し、「アップロードしたファイルを年月ベースのフォルダーに整理」のチェックを外すと、うまくいくようです。

とはいえ、わたしは「年/月フォルダー」を利用したかったので、別の方法を模索しました。

方法2 wp-admin/options.php & .htaccess

そこで、 upload_path は空欄にして、 upload_url_path の方のみ、変更することを考えます。

このとき、画像自体はあいかわらず「/サブディレクトリ/wp-content/uploads/年/月/フォルダー」に入ったままなので、URLでアクセスしたときに、リライトされるような設定が必要になります。

当サイトで利用しているレンタルサーバーはアパッチサーバーで、.htaccess が使えますから、 rewriteengine を利用します。

たとえば、 以下のような1行を記述すれば、uploads フォルダに自動的に移動してくれるはずです。

RewriteRule img/(.*) サブディレクトリ/wp-content/uploads/$1 [QSA]

当サイトは、この方法により「/img/年/月フォルダー」を利用することができました。

方法3 WP Original Media Pathプラグイン

サイトでは、上記の方法でうまくいきましたので、プラグインを使う必要がありませんでしたが、レンタルサーバーの相性次第では、プラグインを利用する方法も選択肢にあがります。

わたしが検索した範囲では、「WP Original Media Path」というプラグインが、もっとも利用しやすそうでした。

2023年4月時点で、メンテナンスがきちんと行われていることも確認できました。

まとめ

WordPressをヘッドレス化する場合の、画像問題について紹介しました。

Jamstackなどを使って、画像をまるごとコピーするような力技もあるとは思います。
ですが、node.jsなどが動かない、普通のレンタルサーバーで作るなら、上記のような方法が簡単で良いのではないかと(今のところは)考えています。

ただし、この方法は、WordPressの仕様が変われば、変更しなければならないものです。
多少のリスクがある方法だということは、ご理解いただければと思います。

最後までお読みいただきありがとうございました。
なにかお気づきの点がありましたら、お問い合わせください。

日行連公式キャラクター「ユキマサくん」

(日行連公式キャラクター「ユキマサくん」)

つつじ行政書士事務所アイコン

つつじ行政書士事務所

応用情報技術者の行政書士です。
ご依頼等はお問い合わせからお願いします。

SNS等