Je souhaite créer une alerte pour les utilisateurs qui visitent mon blog WordPress. Existe-t-il une fonction conditionnelle telle que is_home()
pour détecter si une personne visite le blog la première fois ? Je veux envoyer l'alerte à chaque nouvel utilisateur, peu importe le site sur lequel il est entré.
Non, il n'y a rien de tel dans le noyau.
Vous pouvez définir un cookie et le faire simplement (avertissement: un code non testé suit).
<?php
function is_first_time()
{
if (isset($_COOKIE['_wp_first_time']) || is_user_logged_in()) {
return false;
}
$domain = COOKIE_DOMAIN ? COOKIE_DOMAIN : $_SERVER['HTTP_Host'];
// expires in 30 days.
setcookie('_wp_first_time', '1', time() + (WEEK_IN_SECONDS * 4), '/', $domain);
return true;
}
if (is_first_time()) {
// it's the user's first time, do stuff!
}
Assurez-vous simplement que la mise en mémoire tampon de sortie est activée ou utilisez-la avant d'envoyer quoi que ce soit à l'écran pour vous assurer que le cookie est configuré.
Modifié un peu par chrisguitarguy. Placez-le dans votre fichier functions.php et utilisez le conditionnel dans les modèles de thème, etc. via le hook
function is_first_time() {
if (isset($_COOKIE['_wp_first_time']) || is_user_logged_in()) {
return false;
} else {
// expires in 30 days.
setcookie('_wp_first_time', 1, time() + (WEEK_IN_SECONDS * 4), COOKIEPATH, COOKIE_DOMAIN, false);
return true;
}
}
add_action( 'init', 'is_first_time');