Ho questo codice che mette la parola New sulle immagini-anteprime dei nuovi articoli, il cookie è impostato su 30 giorni, però se io aggiorno la home o se clicco un'altra anteprima-articolo anche vecchio, poi ritorno al nuovo articolo e la marcatura New è sparita.
Non dovrebbe durare 30 giorni?
Codice PHP:
/* Codice che marca i nuovi articoli con "New" */
function wpb_lastvisit_the_title ( $title, $id ) {
if ( !in_the_loop() || is_singular() || get_post_type( $id ) == 'page' ) return $title;
// if no cookie then just return the title
if ( !isset($_COOKIE['lastvisit']) || $_COOKIE['lastvisit'] == '' ) return $title;
$lastvisit = $_COOKIE['lastvisit'];
$publish_date = get_post_time( 'U', true, $id );
if ($publish_date > $lastvisit) $title .= '<span class="new-article">New</span>';
return $title;
}
add_filter( 'the_title', 'wpb_lastvisit_the_title', 10, 2);
// Set the lastvisit cookie
function wpb_lastvisit_set_cookie() {
if ( is_admin() ) return;
$current = current_time( 'timestamp', 1);
setcookie( 'lastvisit', $current, time()+3600*24*30, COOKIEPATH, COOKIE_DOMAIN ); //Dura 30 giorni
}
add_action( 'init', 'wpb_lastvisit_set_cookie' );
CSS
Codice PHP:
/* Formatta la parola "New" nelle anteprime dei nuovi articoli */
.new-article {
background: #feffdd;
font-size: 1em;
font-weight: normal;
color: #ff0000;
padding: 3px;
margin-left: 10px;
border: 1px solid #eeefd2;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}