【WordPress】ファイルアップロード先をwp-content/uploadsから変更し、画像が表示しない・サムネイルが管理画面で出ないなどの対処
| 更新: 2024/10/18 | 2365文字

今回はWordPressで、『ファイルアップロード先をwp-content/uploadsから変更し、画像が表示しない・サムネイルが管理画面で出ない』というケースがあったので対処してみました。パーミッションやサムネコピーでどうにかなりました。さっそく、元の状態・アップロード先変更方法・変更に伴うトラブルと対処方法を確認していきましょう。
目次
WordPress・元のファイルアップロード先や変更したい理由
まずは、元の状態を確認しましょう。管理画面のメディアやソースで見るとわかるんですけど、元々は『ドメイン/wp-content/uploads/〇〇~』に入っています。
また、管理画面で『アップロードしたファイルを年月ベースのフォルダーに整理』にチェックを入れている場合『uploads/2024/02/〇〇~』のように、年月ベースのフォルダーが生成されます。
変更したい理由については、WordPressは利用者が多くて、コアの構成ディレクトリがバレている(さらに本体やプラグインバージョンが古いと攻撃対象になりやすいかも)という点が挙げられると思います。
ソース見て『wp-contentが入ってる』とか言われますからね(笑)
WordPressファイルアップロード先変更方法(wp-admin/options.phpまたはメディア設定)
最初に、画像などのアップロード先にしたいフォルダを用意しておきます。管理人は『WPインストールディレクトリ(ドメイン)/images』を用意しました。
WordPressファイルアップロード先変更方法は、コンフィグ設定の他に、管理画面から行う方法は2つあります。
まず一つが『ドメイン/wp-admin/options.php』で直接アクセスして、upload_pathとupload_url_pathを設定する方法。
もう一つが・・・
設定→メディア設定→ファイルアップロードで設定するという方法。
『アップロードするファイルの保存場所→images』『ファイルへの完全な URL パス→ドメイン/images』のように書きました。
この状態で管理画面からファイルアップロードを実行すると、新しく指定したフォルダに画像が入るようになります。サムネ生成も許可している場合は300×300.jpgのような画像も一緒に入ります。
WordPressファイルアップロード先変更に伴うエラーと対応方法
1:アップロードエラー・ディレクトリ../images作成できません
『管理画面内からひとつ上のディレクトリだから、アップロードするファイルの保存場所は../imagesか』とやった場合、こんな感じのエラーが出ました。
結論としては相対パスだからと言って../imagesではなくて、単純にimagesにすればokでした。
2:画像が表示されない、直接アクセスするとForbiddenになる
アップして記事に使ってみたところ画像が表示せず、直接画像urlにアクセスしても
『Forbidden You don’t have permission to access /images/2024/10/testing01.jpg on this server.』という表示がでます。設定はできますが、パーミッションまでは面倒見てくれなかったようです。
この場合はFTPやサーバーの管理ページから、該当のフォルダ(images)のパーミッションを変更します。通常公開されているwp-content/uploadsと同様、755にしました。
こうすると、フロント部分でも新しいフォルダにアップした画像が表示されるようになりました。
3:管理画面でサムネイルが出てこない
運用途中でのアップロードフォルダ変更、これはかなりめんどくさいことになります。サムネイルが出てこないので、どれがどれだかわかりません。
これは過去にアップした画像が『参照は新フォルダになっているけど、実際にファイルがあるのは旧フォルダ』という状況になっているからです。
ためしに、test2024-02-a.jpgというファイルを自動生成サムネイル一式、コピーしてみました。年月フォルダにしている場合は、その階層も同じになるようにします。
コピーして実際のファイルが入った画像に関しては、このようにサムネイルも表示されるようになります。
(*ボタンで入る画像も、新しいフォルダを参照しているので、サムネイルだけでなくメインの画像も一緒にいれないと、表示されなくなります。)
こういうとき、シンボリックリンクみたいなの、あると便利な気がします。
あとがき・まとめ
- WordPressのファイルアップロード先は管理画面から変更できる
- 新しいフォルダのパーミッションによっては画像が表示されない
- 新しいフォルダを参照しているのに、実際にファイルが無い場合も表示されない
まとめると、こんなところでしょうか。セキュリティ上変更というケースがほとんどだと思いますが、rest-apiと組み合わせたりすると、WordPress構築のサイトだとは、フロントからまったくわからない形にできるかもしれません。
【カテゴリ】- サイトエラー対策と復旧
【タグ】- WordPress