WordPress添加“历史上的今天”功能(2种方法)

2018年12月6日15:50:12 发表评论 1,782 views

对于“历史上的今天”这个功能,相信在很多个人博客上都有看到,而且仅限在个人博客上才能看到,表达了一种情怀。废话不多说,以下实现“历史上的今天”功能的2种方法均来自网络,现整理分享。

WordPress添加“历史上的今天”功能(2种方法)

方法一:安装插件wp-today

这个插件只有当wordpress博客用了一年之后才用得着,开博时间越久,越有价值。向那些坚持写博的童鞋们致敬。

插件名称:wp-today

插件描述:显示wordpress博客当年今天的文章。

插件地址:https://wordpress.org/plugins/wp-today/

插件特点:这个插件非常mini,才3K, 安装后即可显示。如果不想要插件,也可复制里面的代码到theme的function.php里。

插件使用:下载、安装、启用即可,建议简单设置一下。

WordPress添加“历史上的今天”功能(2种方法)

 

插件默认将“历史的今天”显示的位置放在了正文底部,我们也可以自定义位置,只需将“Auto-display list on post:”勾选去掉,然后将以下代码放到需要显示的位置即可:

  1. <? if(function_exist(wp_today)){ print wp_today();} ?>

插件效果:

WordPress添加“历史上的今天”功能(2种方法)

说明:只有当wordpress博客建站一年以上,且两年中同一天有发布过文章,相应的文章底部才会显示此效果。该插件已经很久没有更新了,唯一的小问题就是修改了“标题名称”为中文保存后后台显示不生效,不过不影响正常使用。不喜欢插件的可以使用第二种方法。(以上内容参考自:boke112)

下载地址:

官方下载:https://wordpress.org/plugins/wp-today/

网盘下载:https://pan.baidu.com/s/1gn9xaB9Godawq7vK9lowAw  提取码:2v2g

 

方法二:在function.php文件中添加代码

将 wp-today 插件的部分代码修改一下,然后添加到主题的 function.php 文件中即可实现此功能。完整代码如下:

  1. //历史上的今天,代码来自柳城博主的WP-Today插件
  2. function wp_today(){
  3.     global $wpdb;
  4.     $post_year = get_the_time('Y');
  5.     $post_month = get_the_time('m');
  6.     $post_day = get_the_time('j');
  7.     $sql = "select ID, year(post_date_gmt) as h_year, post_title, comment_count FROM 
  8.             $wpdb->posts WHERE post_password = '' AND post_type = 'post' AND post_status = 'publish'
  9.             AND year(post_date_gmt)!='$post_year' AND month(post_date_gmt)='$post_month' AND day(post_date_gmt)='$post_day'
  10.             order by post_date_gmt DESC limit 5";
  11.     $histtory_post = $wpdb->get_results($sql);
  12.     if$histtory_post ){
  13.         foreach$histtory_post as $post ){
  14.             $h_year = $post->h_year;
  15.             $h_post_title = $post->post_title;
  16.             $h_permalink = get_permalink( $post->ID );
  17.             $h_comments = $post->comment_count;
  18.             $h_post .= "<li><strong>$h_year:</strong>&nbsp;&nbsp;<a href='".$h_permalink."' title='".$h_post_title."' target='_blank'>$h_post_title($h_comments)</a></li>";
  19.         }
  20.     }
  21.     if ( $h_post ){
  22.         $result = "<h2>历史上的今天:</h2><ul>".$h_post."</ul>";
  23.     }
  24.     return $result;
  25. }
  26. function wp_today_auto($content){
  27.     if( is_single() ){
  28.         $content = $content.wp_today();
  29.     }
  30.     return $content;
  31. }
  32. add_filter('the_content', 'wp_today_auto',9999);

以上代码默认是将“历史上的今天”内容添加到文章尾部,如果需要自定义位置,只需将26-32行的代码删除,然后在指定位置添加以下代码即可:

  1. <?php echo wp_today(); ?>

说明:第二种方法的效果和第一种方法的效果是一样的,不过更换主题后需要重新添加此代码。以上内容来自:boke112

站长小智

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: