站长朋友们在使用WordPress建站的过程中,是否曾经遇到这样的问题:希望在新发布的(24小时内发布的)文章前面添加new这种特殊标记?这篇WordPress教程里,91wordpress就向大家介绍一下具体的操作方法。
1. 切换到主题目录,打开functions.php文件,加入以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php function isnew() { global $post; $date = $post->post_date; $time = get_post_time('G', true, $post); $time_diff = time() - $time; if ( $time_diff > 0 && $time_diff < 24*60*60 ){ $display = '<span class="new">NEW</span>'; }else{ //$display = '<span class="new">NOT NEW</span>'; } return $display; } ?> |
代码解释:此处代码代表给24小时内(< 24*60*60)发布的文章添加new特殊标记。如果更长时间,请自己修改上面的代码。
2. 在需要显示new的分类或者首页的列表页面的单篇文章的循环里添加如下代码:
1 | <?php echo is_new();?> |
以category.php文件输出当前分类的文章列表为例,完整的代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <div id="list-all" class="list-all"> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="one-post"> <div class="p-date"> <?php the_time('Y-m-d')?> </div> <div class="p-name"> <?php echo isnew();?> <a href="<?php the_permalink();?>" title="<?php the_title();?>"> <?php the_title();?> </a> </div> </a> </div> <?php endwhile; else: ?> <div class="no-results"> <p><strong><?php _e('出错了'); ?></strong></p> <p> 很抱歉,没找到您需要的内容,点此返回<a href="<?php echo site_url();?>">首页</a>。 </p> </div><!--noResults--> <?php endif; ?> <div class="clr"></div> </div> |
3. 给new特殊标记添加CSS样式,在主体的styles.css文件中加入以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 | .list-all .one-post .p-name span.new{ font-size:12px; height: 12px; line-height: 12px; padding: 2px 10px; background: #dd3333; color: #fff; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; float: left; margin: 0px 0px 0px 10px; } |
4. 最终效果如下: