web-dev-qa-db-fra.com

Modifier l'expiration par défaut de 10 jours du cookie des pages protégées par mot de passe

J'essaie de modifier l'expiration par défaut du cookie après 10 jours, ce qui permet à un utilisateur d'afficher de manière répétée le contenu sur une page WP protégée par mot de passe sans avoir à ressaisir le mot de passe de la page lors de la 10 période de jour. Plutôt que 10 jours, j'aimerais réinitialiser l'expiration à 30 secondes.

La référence du code WP est ici :

apply_filters( 'post_password_expires', int $expires )

C'est ce que j'ai essayé, sans succès:

function custom_post_password_expires() {
    return time() + 30; // Expire in 30 seconds
}
apply_filters('post_password_expires', 'custom_post_password_expires');

J'ai lu les réponses à des questions similaires précédentes et aucune ne semble s'appliquer ou fournir une solution qui fonctionne avec la version actuelle de WP. Je pense que la bonne réponse est très simple, mais je ne l’ai pas encore trouvée. (Remarque: je ne suis pas un développeur expérimenté. J'apprécierais donc des réponses faciles à comprendre :)

Merci.

1
Zocios

Vous devriez utiliseradd_filter( ... ), pas apply_filters( ... ):

/**
 * Filters 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().
 */
add_filter( 'post_password_expires', 'wpse_custom_post_password_expires' );
function wpse_custom_post_password_expires( $expires ) {
    return time() + 30; // Expire in 30 seconds
}
0
Dave Romsey