ワードプレスで広告などを掲載する際、期限を設定して表示することがよくあります。
期限を指定する際には、CocoonのキャンペーンコードやAdRotate、Widget Visibility Time Schedulerなどを併用して設定しています。しかし、時々期限を過ぎても広告が表示され続けることがあり、その原因を調べてみました。
特にキャッシュ関連では、WP Fastest Cacheのタイムアウト・ルールを使ってキャッシュを更新していたのですが、どうやらこれが正常に機能していないことが判明しました。そのため、対処方法を調べることにしました。
同じような問題で悩んでいる方の参考になればと思い、忘備録としてこの記事を残すことにしました。
WP Fastest Cacheのタイムアウト・ルール設定
WP Fastest Cacheのタイムアウト・ルールとは、指定した時間にキャッシュを削除するようにするものです。
WP Fastest Cacheの設定画面の”キャッシュを削除”のタブから”タイムアウト ルール”の横にある”新規ルールを追加”から設定を行います。
削除するキャッシュはいろいろ指定ができますが、上の画像では全てのキャッシュを1日に1度、23:55に削除するように設定しています。
広告等の期限をいつも23:50で切り替えるようにしているため、このような時間にしてあります。
通常広告は23:59までの物がほとんどなので。
通常はこれで問題なくキャッシュが削除され期限通りの広告表示となります。
タイムアウト ルールの問題点
タイムアウト ルールを設定しても、うまくキャッシュが削除されないことがあります。
いろいろと調べていると開発者のサイトに対処方法が掲載されていました。
キャッシュ タイムアウト機能は、サイト訪問によってトリガーされるwp_schedule_event()を使用します。訪問者がいない場合、スケジュールされたイベントはアクティブ化されず、キャッシュ タイムアウト メカニズムの適切な機能に問題が発生する可能性があります・・・・・。
タイムアウト ルールはサイトへのアクセスがあれば問題はないが、アクセスがないとうまく機能しない場合があるとのことです。
それを補う方法として、CronでWP Fastest Cacheのキャッシュ削除を実行させるというものです。
サイトへのアクセスが日によってはない場合などは、Cronを設定したほうがいいようです。
また、Cronを設定した場合は、タイムアウト ルールを特に設定する必要はありません。
もちろん併用することも可能ですが…。
ということで早速Cronの設定を行いたいと思います。
エックスサーバーでCron設定
Cronの設定の前に、CronでWP Fastest Cacheのキャッシュ削除を実行させるためのシークレットキーを設定する必要があります。
シークレットキーの設定
キーの設定は、public_htmlの中にある”wp-config.php”に下記を追加するだけです。
赤いマーカーの部分がシークレットキーとなるので、自分の好きなキーを設定してください。
define('WPFC_CLEAR_CACHE_URL_TOKEN', "123abc");
キーが決まったらwp-config.phpに追記します。
追記する場所は、define(‘XXX とある記述のすぐ下に追記。
define( XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX );
define( XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX );
define('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX);
define('WPFC_CLEAR_CACHE_URL_TOKEN', "XXXXXXXXX");
これで下準備は完了です。
Cron設定
エックスサーバー以外でもCronの設定はほとんど同じだと思います。
まず、サーバー管理画面より、”Cron設定”を選びます。
Cron設定画面の”Cron設定追加”タブを選択し、追加を行います。
分、時間指定します。
毎日行うのであれば、日、月、曜日の欄には”*”を入れます。
コマンドには下記を入力、黄色い部分は対象ブログのアドレスに置き換えてください。
赤色のところは、設定したシークレットキーに置き換えてください。
wget -O - "https://www.YOUR-URL.com/?action=wpfastestcache&type=clearcache&token=XXXXXXXXX" >/dev/null 2>&1
メモは分かりやすい説明を入れておくことをお勧めします。
後は、確認画面へ進み問題がなければ先に進み完了して下さい。
これでCronの設定は終了です。
リモート(URL経由)でキャッシュを削除
外出先やワードプレスの管理画面にアクセスできないときに、下記アドレスにアクセスすることでコマンドでキャッシュを削除することが出来ます。
https://www.YOUR-URL.com/?action=wpfastestcache&type=clearcache&token=XXXXXXXXX
キャッシュ削除がうまくできると、画面に” Done ”と表示されます。
すぐにキャッシュを削除したいときなどに便利です。
さいごに
タイムアウト ルールの問題は、Cronを設定してキャッシュを削除することで解決できているはずですが、必ずご自分のサイトでうまく機能しているか確認をしてください。
また、Cronの実行頻度を多くするとサーバーに負担がかかり、サイトの速度低下にもつながるので設定時間、実行頻度はアクセスの少ない時間に設定することをお勧めします。
コメント