这是一个很好的问题,是的,我知道它是旧的!然而,我也在寻找同样的东西,并且遇到了这个解决方案,所以我认为在这里添加它很有帮助。代码很旧,因此我不确定是否需要更新以适应当前的WP标准:
复制自https://www.wpbeginner.com/wp-themes/how-to-highlight-new-posts-for-returning-visitors-in-wordpress/
--
以下代码在用户到达您的网站时查找名为lastvisit的cookie。如果找不到cookie,则使用当前时间设置cookie。
如果它找到了cookie,则会在用户上次访问后发布的文章标题中添加“New”。
请注意,“new”周围的标记中有一个新的article类。您将使用此类使用CSS设置文本样式。
在主题函数中复制并粘贴此代码。php文件(或创建插件)。
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 - you could change this if required
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()+60+60*24*7, COOKIEPATH, COOKIE_DOMAIN );
}
add_action( \'init\', \'wpb_lastvisit_set_cookie\' );
我们使用了以下CSS。只需将其复制并粘贴到主题或子主题的样式表中,然后根据需要进行修改。
.new-article {
background: #feffdd;
padding: 3px;
border: 1px solid #eeefd2;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
margin-left:5px;
font-size: small;
font-weight: bold;
}
括号中的粗体数字-我不确定如何实现这一部分,但您可以研究插件:WordPress的更好通知
https://wordpress.org/plugins/bnfw/