ダッシュボードからボタン一つでTransientを全てクリアするプラグイン、「Clear Transient From Dashboard」が公式プラグインディレクトリに掲載されました!
事の初め
「表示が変わらないんだけどキャッシュ(Transient)なの?不具合なの?わからない!」という問題を少なくすべく、ちょっと考えていました。
【WordPress】Transientを問答無用で無効化する…ことはできなかった!に書いた通り、ログインしているユーザーの権限を使用して、Transientを効かせるかの制御は行えませんでした。
では、管理者なら簡単にTransientがクリアできるようにすればいいんじゃ?と思い、作成したのがこのプラグインです。
使い方
公式ディレクトリからダウンロードしてwp-content/plugins/にアップロードするか、管理画面からプラグイン名で検索して追加し、有効化してください。
有効化し、管理者(設定変更の権限を持つユーザー)としてログインすると、ダッシュボードに「Clear Transient」ボタンが表示されます。このボタンを押下するだけで、全てのTransientがクリアされます。
フック
このプラグインでは2つのフィルターフックを用意しています。
apply_filters( 'CTFD_delete_transient', true, $transient_name ); apply_filters( 'CTFD_delete_site_transient', true, $transient_name );
どちらもTransientを削除するかの真偽値を変更できるもので、以下のような場合に使用できます。
- クリアさせたくない特定のTransientがある場合
- 全てクリアさせるのではなく、特定のTransientのみクリアさせたい場合
コード
Githubで公開しています。
https://github.com/minkapi/clear-transient-from-dashboard
何も難しいことはしていません。SQLでTransient名を取得し、その全てに delete_transient() を実行しています。