管理者と管理者以外(ただしログイン)のユーザーをCookieで識別したいのですが。 Hyper Cache(キャッシュを使用してページを送信するユーザーを識別するためにCookieを使用する)を使用しているため、この機能が必要です。ログインした管理ユーザーはキャッシュされたページを取得しません。
current_user_can()
を使用して、ログインしているユーザーのタイプを検出できます(存在する場合)。 setcookie()
および $_COOKIE
を使用します。 必要なクッキーをテストして設定します。
function wpse_74742_stop_cache_cookie() {
if (current_user_can('admin')) {
if (empty($_COOKIE['disable_cache'])) {
setcookie('disable_cache', 1);
}
}
}
add_action('init', 'wpse_74742_stop_cache_cookie');
これは非常に基本的な例です。 Cookie管理には多くの詳細があるので、Cookieのパス、ドメイン、および有効期限について少し読み上げることをお勧めします。
admin_init
アクションのユーザー機能に頼るのではなく、適切なフックを使って単純にcookieを設定するほうがよいかもしれません。
function wpse_74742_disable_admin_cache() {
if (empty($_COOKIE['disable_cache'])) {
setcookie('disable_cache', 1);
}
}
add_action('admin_init', 'wpse_74742_disable_admin_cache');