一直很懒,今天挤点时间,对博客做了些小调整。
1.之前从万戈兄的博客看到过将时间显示为“XXX之前”的方法,我年前有试着自己去写,但是我觉得自己写的太冗长了,是通过一个一个条件判断做的。自从在万戈那里看到他的方法,我不由惊呼此种书写方法的简洁——用一个二维数组去存取时间。所以我稍作修改用在了我这里,主要是将英文化一下,加上显示XX秒(有必要吗?
),让其显示为“XXX,XXX ago”或者在有预发布文章时显示“after XXX,XXX”。
2.我博客上面有广告,虽然我已经设置了可以手动关闭广告、留言不显示广告等,但是还是会影响一部分人。所以我又想了个办法,那就是最近三天之内的文章不加广告。具体是在function.php写入一个判断文章是否是三天之内发布的函数:
1: function is_old_post() {
2: global $post;
3: $days = 3;
4: $post_date=$post->post_date;
5: $current_date = time();
6: $diff=$current_date-strtotime($post_date);
7: if($diff>60*60*24*$days)
8: return true;
9: }
$days = 3;此变量即是天数。如果是距离当前时间三天以上时间发布的文章,则函数返回true。然后即可在要显示广告的地方,
1: <?php if(is_old_post()) : ?>
2: //广告代码
3: <?php endif; ?>
3.在文章最后添加最后修订时间显示,但不是所有文章都会加入。只有那些最近一个月之内修改过,并且修订时间离文章发布时间大于一个小时的文章会在文章结尾处显示
Last modified XXX, XXX ago.
之所以加入这个,主要是因为可能有些类似于教程之类的文章可能会随着时间的推移发现有错误进而进行修改后可以给后来的读者一个提示。我用的方法如下:
1: <?php $the_time = get_the_time('U');
2: $the_modified_time = get_the_modified_time('U');
3: if (($the_modified_time != $the_time) && (time()-$the_modified_time<30*24*60*60) && ($the_modified_time-$the_time>60*60)) {
4: echo "<div class='modifid'>Last modified <span class='time'>".time_since($the_modified_time, time())."</span></div>";
5: }
6: ?>
主要解释一下if语句中的三个条件语句,分别是修订时间与发布时间不一致、当前时间与最后修订时间差在30天之内、修订时间与发布时间差在一个小时以上(刚发布的文章可能会频繁修改一些小问题,所以不纳入修订)。
注意,此处也调用了time_since()函数,这个函数即是让时间显示为XXX,XXX ago的函数。不需要如此显示,则直接将最后一句改为
the_modified_time('F jS, Y');

最后,想问一下,有谁知道如何显示单篇文章的修订次数?