Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

WordPressのログイン時発行Cookieの有効期間を確認する

ログインに成功するとCookieに対して自動ログイン可能なハッシュを発行してくれる。それがこのコード。

<?php
//wp-login.phpの454行目ぐらい

require_once ABSPATH . 'wp-includes/class-phpass.php';
	$hasher = new PasswordHash( 8, true );

	/**
	 * Filter the life span of the post password cookie.
	 *
	 * By default, the cookie expires 10 days from creation. To turn this
	 * into a session cookie, return 0.
	 *
	 * @since 3.7.0
	 *
	 * @param int $expires The expiry time, as passed to setcookie().
	 */
	$expire = apply_filters( 'post_password_expires', time() + 10 * DAY_IN_SECONDS );
	setcookie( 'wp-postpass_' . COOKIEHASH, $hasher->HashPassword( wp_unslash( $_POST['post_password'] ) ), $expire, COOKIEPATH );

見ての通り、デフォルトは10日間の生存期間が与えられる。

これを変更したい場合はfilterで定義されているメソッドをfunction.phpで実装する。
どうやらWP3.7以降でないとこのフィルターが実装されていないらしい。

<?php
add_filter(‘post_password_expires’,'set_post_password_expires’);

function set_post_password_expires($time){
  //好きにしたらええねん
}