
こんにちは。
こちらの記事では、KUSANAGIユーザー同士が交流している、KUSANAGIユーザーフォーラム内に上がったトピックスをご紹介していきます。
このフォーラムには、KUSANAGIの基本的な使い方から、インストール時・運用時のお悩みまで、様々な課題やその解決方法が投稿されています。
KUSANAGIについて、わからないところや困っていることがある方は、ぜひご参加ください。
https://users.kusanagi.tokyo/
今回は、トピックスタイトル「コメント承認時にbcacheをクリアする方法」をご紹介します。
キャッシュの保存期間を分けて設定したい
キャッシュの保存期間は短ければ数分から数十分、長いと数時間から数日といった設定がされることが多いようです。プラグインやサーバによっては「無期限」や「1週間以上」といった設定をするケースもあるのだとか。なぜこれだけの差があるかと言えば、長くすること、短くすることにはそれぞれにメリット・デメリットがあるためです。
例えば、短くすれば更新の反映が早くなりますが、その分、サーバにかかる負荷が上がりますし、アクセスが集中し、トラフィックが上がればDBやPHPに負荷がかかりやすくなります。一方、長めに設定した場合、更新が反映されるまでに時間はかかるものの、サーバにかかる負荷は低く、大量のアクセスが発生してもレスポンスが安定します。そのため、どちらを選ぶかはサイトの特性や運用方針の違いによります。
ただ、サイト内に「ほとんど更新されないページ」と、「コメントが投稿されるなどの更新頻度が高いページ」が混在している場合、一律で時間の設定をしてしまうと不便を感じることがあります。そこで、コンテンツが更新されにくいページに対しては長めに、コンテンツの更新頻度が高いページには短めに、あるいはコメント承認や記事更新時にそのページだけキャッシュを消すというように設定をわけることでバランスをとるということが行われています。
今回ご紹介するトピックスはその設定方法に関するものになります。
<寄せられたご質問>
ページに対してコメントが投稿され、更にそれが承認されたタイミングでそのページのみbcacheをクリアしたいのですが、なにかやり方はありますでしょうか?
ご存じの場合、教えて頂けるとありがたいです。
※現状ですと、ページが「公開」や「更新」された場合のみbcacheがクリアされる仕様と拝見していますが、勘違いだったらすみませんpage-cache.php > add_action( 'transition_post_status', array( $this, 'post_publish_clear_cache' ), 10, 3 );
背景としては、負荷軽減のためにbcacheの期限を長めにとりたいのですが、そうするとキャッシュ更新時までコメント反映が遅れるため、bcache期限を長くしつつ、コメント承認時にキャッシュをクリアしてコメント表示もリアルタイムにしたいと考えております。
またコメントは自動承認にしていますが、スパムコメントも結構きてAkismetが捕獲してくれているので、「コメント投稿時」でなく、「コメント承認時」にキャッシュクリアしたいと考えております。
<回答>
bcache on の状態で、コメントが承認されたタイミングにキャッシュクリアしたい場合は、以下のコードをテーマの functions.php に組み込んでみてください。
KUSANAGIでお困りのことがあれば、KUSANAGIユーザーフォーラムへ
KUSANAGIに関するご質問はもちろん、実装部分などの、不明な点やお困りのことがあれば、ぜひフォーラムにお寄せください。
フォーラムにはユーザーの方々だけでなく、KUSANAGI開発を担当しているメンバーが回答することもありますので、KUSANAGI関連でのお問い合わせであれば、まずはKUSANAGIユーザーグループのフォーラムに質問を投げてみるのもよいかと思います。
また、お仕事やプライベートでKUSANAGIを使っているという方につきましては、ぜひフォーラムの質問への回答者としてもご参加ください!皆さまのご参加をお待ちしております。
https://users.kusanagi.tokyo/
もしフォーラムでも解決できなかった場合や、自社で対応が難しい場合やより高度なサービスをご希望される場合は、KUSANAGIマネージドサービスというプライム・ストラテジーのサービスもありますのでご検討下さい。
執筆者/菱沼 佑香

プライム・ストラテジーでは、Web担当者様、IT担当者様などの
お役立ち資料やYouTube動画を公開しています。ご興味ある方はぜひご覧ください。