经常来我博客的朋友应该发现我博客的最新一篇文章的标题上会显示“NEW”提示图片,这个跟我前天的文章《给置顶文章标题加个“置顶”提示图片》是差不多的功能,但实现方法不同,而且跟万戈折腾的用文章发表时间跟现在时间相比较来判断的方法不同,我还记得QiQiBoy也写过类似功能的文章。
我的方法是通过调用最新文章代码提取最新的那篇文章 ID 和主页文章列表的文章 ID 比较来判断
下面是实现方法:
1. 当然是做个提示用的“NEW”图片,具体自个画吧,我这里说明的图片大小为:20×15,做好的图片放在主题所在目录的 images 文件夹里面
2. 设置显示图片位置的 css,这里我用名为 new-post 的 class 来定义,我用绝对位置,css 参考如下
(假如你的文章区是用 post 这个 class,所以记得在 post 这个 class 加个 position:relative; 属性)
.post .new-post{ position:absolute; top:0; left:17px; width:20px; height:15px; background:url("images/new-post.gif") no-repeat 0 0; }
3. 打开主题文件 index.php
找到 <?php if (have_posts()) : while (have_posts()) : the_post();?> ,在其上面加入以下代码
<?php $myposts = get_posts('numberposts=1&offset=0&category=0'); foreach($myposts as $post) : setup_postdata($post); $newpostid = get_the_ID(); endforeach; ?>
这段代码是取得最新一篇文章的 ID 赋值给 $newpostid 变量
4. 继续修改 index.php
在<div class=post></div>之间加入以下代码
<?php $postid = get_the_ID(); if ($newpostid == $postid) {echo '<div class="new-post"></div>';} ?>
这段代码是把首页显示的文章 ID 逐个跟第 3 步取得最新文章 ID 的 $newpostid 对比,唯一相同 ID 文章添加 NEW 图片标示
效果看我博客首页/如下图
OK,搞定,同样是细节小功能,而且是可要可不要或者说多此一举的折腾,玩玩吧。
目前只用在我现在所使用的 zLEI 主题里面,不知道此方法是否“太老土”,如果各位朋友有更好的方法欢迎指教。
- 本文标题:给最新的文章标题加个“NEW”提示图片
- 本文链接:https://zww.me/archives/25134
- 发布时间:2010年04月14日 19:30
- 版权声明:除非注明,文章均为 zwwooooo 原创,转载请以链接形式标明本文地址!
不错,这样一折腾,主题一下就显得有创意了。
@leesum 稍微改变一下
这个好。又学到一招,收藏了
这个很实用
我觉得这个办法不太好,因为多了一次查询.
其实只要在循环外面声明个变量$i= 0;
然后循环里$i++;
然后给$i==1的那条post多加个div就可以了.
你应该明白的.
@lifishake 这个方法我早知道了,但是当有“置顶”文章时就不准了
@lifishake 还有一个情况:当你翻页时,凡是最上面的文章都显示最新,这就不对了
@zwwooooo 那就再加个跳开置顶的判断再++
@zwwooooo 再加is_home()就可以了.反正是不同意再次检索,hoho
@lifishake 翻页不行的,不行你试试吧
rayfile资源网也是你做的站吗?
好像是个新站
@Lazyyyyyyyyyyyyyyyyy 不是,接的广告
之前用的是另一种,又学到一个办法。
@Vicia 玩一下
我也折腾折腾去
博主是把早餐分开了吃啊!
博主就是能折腾,
是很不错,但是不是所有的主题都适合。
@古墓候梅 所有主题都适合,但要你自己根据主题修改一下。
打酱油的路过~~~~
zww.. 据说你奶粉钱够啦!
@超人 你就以为这么简单,等你有家有小孩就知道了
好方法呀.. 我改天也添加上去~
@超人 小小折腾,玩儿
这个方法挺新鲜的。
这个文章好,留个记号被看
这个那个什么我觉得没必要,毕竟不像置顶文章,确实需要明显的标志以区别最新文章。
@世纪之光 这个是顺便
吹你
这个好玩,明天加上去试试。。
学到了~~
还是感觉用时间来判定是否新文章好一点
@crisco 喜欢哪种就用哪种
明白了,最新的标志坚持多久呢?
ASP如何实现?
@卢松松 不懂asp,你才懂