web-dev-qa-db-ja.com

メディアライブラリ内の最新バージョンの画像をWordpressに表示させるにはどうすればよいですか。

私のワークフローは次のようなものです。

  1. メディアライブラリから多数の画像を一度に削除します(たとえば、01.jpg02.jpg03.jpg...など)。
  2. 同じファイル名(01.jpg02.jpg03.jpg...)で一連の画像を再アップロードします。

メディアライブラリは古い画像を削除しても、サムネイルやプレビューとして保持して表示します。

明らかに、この問題は異なるファイル名の画像を追加することで回避できますが、命名規則に関係なく動作するもっと良い方法があるかどうか私は思いました。それとも私が完全に行方不明であること何か他のもの?

ありがとう。

5
user3381

@ t31osご回答ありがとうございます。私のブラウザが画像をキャッシュしているだけだと確信しています。しかし、(私は指定したはずです)私は唯一のユーザーではありません。ユーザーが何かを削除するたびに更新するようにユーザーに指示する必要がないようにしたり、画像削除の一環としてページを更新する不器用さを解消したりする必要はありません。

しかし、それがブラウザキャッシングを使用する理由です - 同じ画像が再度呼び出されるたびに同じ画像が読み込まれないようにするためです。ブラウザはそれを同じ画像と見なします。

あなたはこのようなイメージを呼び出すことによってちょっとした回避策を作ることができます: http://yoursite.com/images/01.jpg?v1 そして http://yoursite.com/images/01.jpg?v2 - これは同じ画像を2回ロードします。

4
stffn

これはブラウザキャッシュの問題、not WordPressメディアライブラリの問題です。メディアギャラリーで古い画像が表示されるのは、同じファイル名を使用していて、ブラウザがすでに持っているバージョンをロードすることによって時間と帯域幅を節約しようとしているためです。

この問題を解決するには2つの方法があります。

キャッシュ無効化

フロントエンドで使用されているように、イメージ名の最後にクエリ変数(?v=5)を追加します。これはメディアギャラリーには影響しません...しかし、フロントエンドでキャッシュされた古い画像を見ることを人々に妨げるでしょう。参考までに、これはWP coreで更新されたJavaScriptファイルをブラウザに強制的に再ダウンロードさせるのと同じ方法です。

mod_expires

あなたが本当に細かくしたいのなら、拡張子(すべてのjpgまたはpngファイル)またはファイル名のどちらかに基づいてあなたのサーバ(Apache)に異なった画像のためにカスタムの「有効期限」の日付と時刻を設定するように言うことができます。これはより高度なトリックですが、新しい画像をアップロードするときはいつでも、これを使用してすぐに全員のキャッシュをフラッシュすることができます。

3
EAMann