Using WordPress ‘post_mime_types’ PHP filter

The post_password_expires WordPress PHP filter allows you to change the life span of the post password cookie.

Usage

add_filter('post_password_expires', 'my_custom_post_password_expires');
function my_custom_post_password_expires($expires) {
    // your custom code here
    return $expires;
}

Parameters

  • $expires (int): The expiry time, as passed to setcookie().

More information

See WordPress Developer Resources: post_password_expires

Examples

Change the post password cookie expiry to 5 days

This code will set the life span of the post password cookie to 5 days.

add_filter('post_password_expires', 'change_post_password_expiry_to_5_days');
function change_post_password_expiry_to_5_days($expires) {
    return 60 * 60 * 24 * 5; // 5 days in seconds
}

Set the post password cookie expiry to 1 hour

This code will set the life span of the post password cookie to 1 hour.

add_filter('post_password_expires', 'change_post_password_expiry_to_1_hour');
function change_post_password_expiry_to_1_hour($expires) {
    return 60 * 60; // 1 hour in seconds
}

Make the post password cookie expire at the end of the session

This code will make the post password cookie a session cookie, expiring when the browser is closed.

add_filter('post_password_expires', 'set_post_password_cookie_to_session');
function set_post_password_cookie_to_session($expires) {
    return 0;
}

Double the life span of the post password cookie

This code will double the default life span of the post password cookie (from 10 to 20 days).

add_filter('post_password_expires', 'double_post_password_cookie_life_span');
function double_post_password_cookie_life_span($expires) {
    return $expires * 2;
}

Conditionally set the post password cookie expiry

This code will set the life span of the post password cookie to 1 day for a specific post, and 7 days for all other posts.

add_filter('post_password_expires', 'conditionally_set_post_password_cookie_expiry');
function conditionally_set_post_password_cookie_expiry($expires) {
    if (get_the_ID() == 123) { // Specific post ID
        return 60 * 60 * 24; // 1 day in seconds
    } else {
        return 60 * 60 * 24 * 7; // 7 days in seconds
    }
}