質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.78%

wordpressで作成したwebサイトの中の画像を差し替えたが、反映されない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,456

score 13

前提・実現したいこと

現在、windowsを用いて、wordpressのstaging環境にてwebサイト(http://example.com)の編集を行っている者です。

wordpressの管理画面「Pages(ページ?)」をクリックすると、
各webページごとのHTMLファイルが選択できるようになると思います。
現在、こちらのHTMLファイルでは下記のように画像を指定しております。

<a href="http://example.com/example" target><img src="http://example.com/wp-content/uploads/・・・/example.png" alt="・・・"></a>

今後画像ファイルの差し替えは何度か行う可能性がありますので、
HTMLの記述を変更せずに画像ファイルを差し替えたいと考えております。

winSCPを用いてサーバ上から古い画像ファイルを削除して新しい画像ファイル(古い画像ファイルと同じ名前)をアップロードしなおしたにもかかわらず、
差し替え前の古い画像がずっと表示されてしまうという状況が発生してしまいました。

詳細な状況説明

実施したことの詳細を下記に示します。
【実施したこと1】

  1. wordpressステージング環境のサーバに、WinSCPを用いてアクセス
  2. 画像ファイルが配置されているディレクトリへ移動
  3. 不要な画像ファイルの名前を一度example.pngからexample_old.pngに変更
  4. 新しい画像ファイル(example.png)を同じディレクトリへ配置
  5. ブラウザ(chrome)を更新(F5キー)
    →更新されない
  6. ブラウザ(chrome)のキャッシュをクリア(キャッシュされた画像とファイルをクリア)し更新(F5キー)
    →更新されない
  7. ブラウザ(chrome)のスーパーリロード(Shiftキー+F5キー)
    →更新されない
  8. HTMLファイルの記述を変更(参考サイト
    下記のように変更
    →更新された!
<a href="(遷移先のURL)" target><img src="http://・・・・.com/wp-content/uploads/・・・/example.png?<?php echo date(ymdhis);?>" alt="・・・"></a>

※参考サイトとは異なりdate("ymdhis")ではなくdate(ymdhis)とした理由は、
date("ymdhis")という記述にするとなぜか画像の下に「alt="・・・">」と表示されてしまうためです。

試したこと

ブラウザのキャッシュをクリアしても更新は反映されませんでしたが、
上記8.にあるような記述をすれば画像は更新されることがわかりました。
このことから、

先に全てのHTMLファイルを8.のような記述に1度変更すれば、 ブラウザを更新するたびにサーバから画像ファイルを取得してくるようになるはず。
そうすればその後何度画像ファイルを差し替えてもHTMLを変更しなくてもよくなるのではないか?

と思い、下記を試しました。

【実施したこと2】

  1. まず初めにHTMLファイルの記述を変更
<a href="(遷移先のURL)" target><img src="http://・・・・.com/wp-content/uploads/・・・/example.png?<?php echo date(ymdhis);?>" alt="・・・"></a>
  1. 画像ファイルが配置されているディレクトリへ移動
  2. 不要な画像ファイルの名前を一度example.pngからexample_old.pngに変更
  3. 新しい画像ファイル(example.png)を同じディレクトリへ配置
  4. ブラウザ(chrome)を更新(F5キー)
    →更新されない
  5. ブラウザ(chrome)のキャッシュをクリア(キャッシュされた画像とファイルをクリア)し更新(F5キー)
    →更新されない
  6. ブラウザ(chrome)のスーパーリロード(Shiftキー+F5キー)
    →更新されない

結局上記の方法では画像ファイルは更新されませんでした。

質問

  • 下記の記述をするだけでは、ブラウザの更新と同時にサーバから画像ファイルを取得することはできないのでしょうか。
<a href="(遷移先のURL)" target><img src="http://・・・・.com/wp-content/uploads/・・・/example.png?<?php echo date(ymdhis);?>" alt="・・・"></a>
  • 何か他に対処法がございましたらご教示いただきたく存じます。

長くなってしまいましたが、何卒よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    退会済みユーザー

    2018/12/14 19:48

    固定ページの変更だと察するのだけど、固定ページは静的htmlコードしかかけないはずで、そこでなぜphpタグを書いているのか、ちょっとわからないのですが。

    キャンセル

  • minako1

    2018/12/14 19:52

    固定ページにはphpタグは記述できない、という意味でしょうか。
    基礎的なことだと察しますが、初心者のためよくわかっておりません…。

    キャンセル

  • minako1

    2018/12/14 19:55

    静的htmlでは更新のたびに下記のようなことはできない、という認識でお間違いないでしょうか。
    更新のたびに.png?の後ろの文字を変化させる
    または
    更新のたびに.png?の後ろの文字を更新日時にする

    キャンセル

回答 2

checkベストアンサー

+1

固定ページは、ただのhtmlソースなので、
通常はphpコードを書いても実行できません。

ですが、少々手間ひまをかけて仕込めば、
phpコードを実行させることも出来るようです。
ショートコードを固定ページに記述しておき、
functions.phpなどで作っておいて自作phpコードを呼び出すというもののようです。
phpというよりもWordPressの仕組みに一定の理解がないと、
真似してやろうとしても頓挫しそうなレベルの難易度です。

自作phpコードをWordPress固定ページ内で実行する方法:
WordPressの固定ページでPHPを使う方法 | 問題を解決して成果を上げる東京新宿のWeb制作|raisez(ライセス)

画像をキャッシュさせないための方法を模索しているのであれば、
そもそもキャッシュさせないような設定もできるよという事例:
画像をキャッシュさせないようにする一番手っ取り早い方法  :  かばだんなさん かく語りぬ3

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/12/14 21:55

    とても丁寧にご回答くださり、ありがとうございます!!

    1つめの方法に関して、質問させていただきたく存じます。
    「“/inc/$file.php”のinc/の部分は任意の名前をつけてください。」とは、例えばどのような名前をつければよいのでしょうか。incではなく別のディレクトリを作成するという意味でしょうか。

    2つめの方法ですが、
    試してみましたが、やはり画像は更新されませんでした。

    1. 下記を固定ページの上部に追加
    <head>
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Cache-Control" content="no-cache">
    </head>

    2. 画像ファイルと同じディレクトリ下に下記ファイルを配置
    「.htaccess」
    Header set Cache-Control "no-cache"
    Header set Pragma "no-cache"

    もしかして少し時間を置く必要があったりはしますでしょうか・・・?
    アップロードしてすぐに更新したのですが、関係はありますでしょうか。

    何卒よろしくお願いいたします。

    キャンセル

+1

スーパーリロードはブラウザのキャッシュをクリアする機能で、ブラウザのキャッシュは一度見た画像は一旦保存して次に見るときはわざわざ更新しなくていい=ページの表示を速くしようという機能です。

質問の内容からすると、サイト内のどこかに一定期間保存する機能のあるテーマやプラグイン(w3 total cacheなど)を使っていたり、サーバーの中でキャッシュしてくれる機能があるものもあったりと何かありそうな気がします。

まずはメディアライブラリで差し替えた画像がきちんと認識されているかを確認してください。

差し変わっているのを確認したら、画像のURLをコピーして直接画像を開いてみてください。開いた画像が元の画像なのであれば上の2つのうちのどちらかが影響しているのでしょう。

一番いいのは普段使いでないブラウザを使ってログインせずに見てみること。前述したテーマやプラグインの中には管理者としてログインしているとリフレッシュしない場合がありますので・・・。

以上参考になれば・・・時間の経過でもう差し変わってするかもしれませんね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/12/15 01:46 編集

    ご回答ありがとうございます。

    可能性があるプラグインは下記かと考えます。
    ・Go Daddy Quick Setup
    ・Search Engine Visibility
    ・Sidekick
    以前これとは別件で、CSSの変更が、ログインしていない別ブラウザで確認した場合反映されていないという事象がありましたので、一度キャッシュを保存するようなプラグインをDeactivateしてみたところ、問題なく反映された、ということがありました。
    ただ、これらのプラグインを一度Deactivateしても問題ないのかわからず、現在は何も触っていない状態です。

    ちなみに、別ブラウザを使ってログインせずに見るというのは一度行っております。その場合も画像は変更されておりませんでした。


    また、「画像のURLをコピーして直接画像を開いてみてください。」とのこと、ありがとうございます。
    確認し、改めて連絡させていただきます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.78%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る