パスワードで保護された投稿にアクセスした後にユーザーがサイトからログアウトしたときに、パスワードで保護された投稿に設定されているすべてのCookieを削除したいと思いました。
これを行う機能はありますか?
ポストパスワードcookieは次のように設定されます。
setcookie(
'wp-postpass_' . COOKIEHASH,
$hasher->HashPassword( wp_unslash( $_POST['post_password'] ) ),
$expire,
COOKIEPATH,
COOKIE_DOMAIN,
$secure
);
wp-login.php
ファイルにあります。
その後、wp_clear_auth_cookie()
関数内でclear_auth_cookie
フックを使用して、ログアウト時にそれを消去できます。
/**
* Clear the Post Password Cookie on logout.
*
* @link http://wordpress.stackexchange.com/a/198890/26350
*/
add_action( 'clear_auth_cookie', function()
{
setcookie(
'wp-postpass_' . COOKIEHASH,
'',
time() - YEAR_IN_SECONDS,
COOKIEPATH,
COOKIE_DOMAIN
);
});