Skip to content

给最新文章添加一个New图标【修正代码】

2010 三月 2
by 荒野无灯

将以下代码添加到当前使用主题的functions.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
//////start//////////title icon////////by 荒野无灯///////////////
function add_title_icon($title)
{
    global $post;
    $post_date=$post->post_date;
    $current_time=current_time('timestamp');
    $diff=($current_time-strtotime($post_date))/3600;
    $title_icon_new=get_bloginfo('template_directory').'/images/title_icon/new.gif';
    $title_icon_top=get_bloginfo('template_directory').'/images/title_icon/top.gif';
    $sticky = get_option('sticky_posts');
    if($sticky)
    {
    $title=in_array($post->ID,$sticky)?'<img src="'.$title_icon_top.'" />'.$title:$title;
    }

    if($diff<24)
    {
    $title='<img src="'.$title_icon_new.'" />'.$title;
    }
    return $title;
}

//让标题显示icon
add_filter('the_title','add_title_icon',999);
//////end//////////title icon////////by 荒野无灯///////////////

再把 new.gif 和top.gif 两个图片文件上传到当前主题的images/title_icon目录下面。
图标下载:


OK,这样就可以了。
如果要修改时间段,可以修改代码中的24为你想要的数值,则超过规定的时间后图标就会自动消失。
看一下效果吧:
前台:

后台:


2010年3月3日修正代码:
bug:用了以上代码后,页面列表里的链接也加上了和标题一样的new图标,如下图:

修正代码:
在原代码的基础上添加如下代码:

1
2
3
4
5
6
7
8
//不能让页面也显示主题图标
function strip_page_icon_html($content)
{
        $content = preg_replace('@<img(\s?)src=(.*?)(\s?)\/>@','',$content);
        $content = preg_replace('@&lt;img(\s?)src=(.*?)(\s?)\/&gt;@','',$content);
        return $content;
}
add_filter('wp_list_pages','strip_page_icon_html',1000);

加上修正代码以后,一切OK了。

喜欢这篇文章吗?

请订阅本站 RSS feed填写您的邮件地址,订阅我们的精彩内容:,欢迎点击这里捐赠以支持荒野无灯转播到腾讯微博 转播到腾讯微博

作者:荒野无灯
出处:Hacklog【Hacklog】

声明: 本站遵循 署名-非商业性使用-相同方式共享 3.0 共享协议. 转载请注明转自Hacklog【荒野无灯weblog】

本文链接: http://ihacklog.com/?p=3484

32 Responses Post a comment
  1. 十二月 26, 2011

    我直接修改为wp_list_categories是无效的,

  2. 十二月 26, 2011

    无灯兄弟我的和你的不一样,我用的是分类作为导航,哪个NEW图标也上去了,用你的补充代码无效,是不是wp_list_pages这个要改成其它的?

  3. 三月 22, 2011

    最近想实现一个功能,就是像DZ论坛一样每个类别后面有个括号比如 (今日: 56) 就是今天有56个新帖子,想根据哥们你的代码改一下,你说这个怎么做呢? :grin:

  4. 三月 6, 2011

    问一下,按照修改后的代码,分类里会显示图标。我的是wordpress3.1,另外请教一下“::CODECOLORER_BLOCK_3::”在那里修改?我想显示标题后。

  5. 八月 25, 2010

    有点意思的功能

  6. 八月 3, 2010

    哥们~这个挺酷的~
    话说你的图片放大用的是什么插件呢?

  7. 七月 30, 2010

    回去试试可以不。就像要这也的效果呢。
    比较喜欢你的站点,交换友情链接,不知意下如何,我先加了

  8. 六月 22, 2010

    看到这个好是高兴.
    正好可以用到,
    先收下了.
    :smile:

  9. 五月 19, 2010

    我想让图标显示到标题后面。搞了半天就是显示不了,请博主赐教一下

    • 五月 20, 2010

      :!:

      1
      $title='<img src="'.$title_icon_new.'" />'.$title;

      修改为

      1
      $title=$title.'<img src="'.$title_icon_new.'" />';
  10. 五月 9, 2010

    之前那个忘加code了..
    ..发现光修改index的标题不行,我使用的模板不少地方都使用了

    1
    <?php the_title(); ?>

    ..各种重复..暂时放弃这种方法了 :cry:

  11. 五月 9, 2010

    呃..光修改index的标题不行,我使用的模板不少地方都使用了..各种重复..暂时放弃这种方法了 :cry:

  12. 五月 9, 2010

    修改过程中由于个人模板的index.php中标题的链接title也是用

    1
    <?php the_title(); ?>

    调用的,会造成置顶/最新的标题出现重复。之后参考WP默认模板改成

    1
    title="<?php printf(__('Permanent Link to %s', 'kubrick'), the_title_attribute('echo=0')); ?>"

    后修改成功。
    不太会代码..请问这2种title有啥区别呃.谢谢:-).

    • 五月 9, 2010

      类似于

      1
      <h2><a href="<?php the_permalink(); ? rel="nofollow">"><?php the_title(); ?></a></h2>

      这种调用方式是不会出错的,如果标题出现在a 标签的title属性里面,那么会出问题,就是img标签也一并显示出来了。

      • 五月 9, 2010

        我使用模板的情况就是很多a标签里面都有title属性.. :!: 悲剧了..

  13. 三月 6, 2010

    报告bug,new的图片代码添加到alt里了…

  14. 三月 6, 2010

    我也加上鸟

  15. 三月 5, 2010

    不错哦,学习了.常来我那坐坐

  16. 三月 5, 2010

    这个功能挺实用。
    PS,你下面那个垃圾评论的按钮能否放开一点?误点

  17. 三月 3, 2010

    同服参观~~

  18. 三月 3, 2010

    你居然又改域名。。呼。。

    PS:你貌似忘了考虑时区。嗯。。

    • 三月 3, 2010

      @simaopig, 时区已经修改好了,谢谢提醒!
      更换服务器后,用得好好的UTC+8不能正常工作了,现在修改为shanghai 才OK了

  19. 三月 3, 2010

    是个好方法,借鉴一下

Trackbacks & Pingbacks

  1. 换新主题了:SimpleDark
  2. WP给最新文章添加一个New图标
  3. WP给最新文章添加一个New图标

Leave a Reply

Allowed Tags - You may use these HTML tags and attributes in your comment.

<a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <q cite=""> <strong>

 :wink:  :-|  :-x  :twisted:  :)  8-O  :(  :roll:  :-P  :oops:  :-o  :mrgreen:  :lol:  :idea:  :-D  :evil:  :cry:  8)  :arrow:  :-?  :?:  :!:

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS