我使用的历史上的今天代码

侵权勿怪。
话说这东东实在是忘记了从哪个插件的代码里扒出来的,自己改良了一番。却没想到有人感兴趣。就简单说一说用法吧。
首先,把下面这个函数粘贴到function.php里

function history_today($post_year, $post_month,$post_day ){
	global $wpdb;
	//SQL语句里的项目可以随意改良,想要加什么效果请在主贴回复,@lifishake愿意为你服务
	$sql = "select ID, year(post_date_gmt) as h_year, post_title, comment_count FROM 
			$wpdb->posts WHERE post_password = '' AND post_type = 'post' AND post_status = 'publish'
			AND year(post_date_gmt)!='$post_year' AND month(post_date_gmt)='$post_month' AND day(post_date_gmt)='$post_day'
			order by post_date_gmt";
	$histtory_post = $wpdb->get_results($sql);
	if( $histtory_post ){
		foreach( $histtory_post as  $post ){
			$h_year = $post->h_year;
			$h_post_title = $post->post_title;
			$h_permalink = get_permalink( $post->ID );
			//注意下边,输出的格式可以自行调整,不愿意加年的把$h_year去掉即可
			$h_post .= "
  • $h_year:  $h_post_title
  • "; } } $content=''; if ( $h_post ){ $content = $content.$h_post; } echo $content; return $content; }

    对于这个函数,我在现在的主题中两处用到了它。
    第一个是用在calendar的下方。

  • 其实这个用法是假的,跟calendar一点儿关系都没有,即使点击calendar进了archive里,显示的也还是历史上的“今天”,因为date()取出来的就是今天。我只不过是觉得把“历史上的今天”放在那个位置比较合适而已。
    至于“历史上的帖子发出的那一天”,用法是这样的:
    如果在single里直接调用,那么照下边的样式粘贴:

    历史上的今天:' ;
    		$post_year = get_the_time('Y');
    		$post_month = get_the_time('m');
    		$post_day = get_the_time('j');
    		history_today($post_year, $post_month, $post_day);
    ?>
    

    如果是在singlesidebar里,则要多加一个是否是single的判断条件:

    历史上的今天:' ;
    		$post_year = get_the_time('Y');
    		$post_month = get_the_time('m');
    		$post_day = get_the_time('j');
    		history_today($post_year, $post_month, $post_day);}
    ?>
    

    备注:
    此代码实现的其实是“历史上不是这一年的月日相同的这一天”。如果真要实现的话,把第一段代码中的

    year(post_date_gmt) != '$post_year' 
    

    改成

    year(post_date_gmt) < '$post_year'
    

    即可。

    Q&A:
    留着答疑。

    已有21条评论

    1. 这样调用蛮常用的

    2. 我终于明白为什么一直调不出来了= =
      我应该用calendar方法的结果一直在跟single方法拼命。。我太2了!

    3. 成功了……我把调用函数放在了随机日志的下面,试了无数次只是带年份的随机日志……调在随机的上面了……就正常了= =
      多谢啊多谢o(∩_∩)o

    4. 貌似一个叫柳成的人还是谁 做过这个插件。。

    5. 天· 这次是不懂了 好专业·····

    6. 我记得柳城写过插件,不过我更喜欢非插件的,哈哈

    7. 用这个方法恶搞?

    8. 恶搞谁?

    9. 插与不插,不过一念之间.

    10. 非插件是王道啊~

    11. 初看还以为是历史上的今天都发生了什么大事呢。。。

    12. 那种插件也是有的.不过因为维基被封,所以使用普及率甚低.

    13. 围观哈子

    14. 主题在IE6下,有些错乱。

    15. 看过,忘了哪个插件

    16. 网上好像有这类的代码,好像互动百科都有的吧,没有用过

    17. 博客很漂亮啊!~文章写的有好,。。。顶

    18. 没看到那个大大的警告吗,早就放弃IE6了

    19. 个人认为把这样的代码放在自己的网站上是一种累赘。

    20. 各有所好呗。我就喜欢去别人站上刨坟。

    21. 那个,我试用后,发现列出的文章发表日期有些不是历史上的今天的。什么问题?

    22. 你莫不是把代码放在了随机日志的后面?

    23. 放在隨機日誌的前面。

    24. 唔,那就不知道了。我当时遇到这个问题是把它放在后面的时候会随机,放在之前就正常了。

    25. 是不是你发表了之后又有修改啊?

    26. 没有啊,一次过的

    27. =。=
      难道是我RP爆发了…..

    28. 你直接上mysqladmin上把那段代码执行一下,单引号里的内容用随便哪天的年月日代替一下,看看出来的东西是不是对的,如果对,那就是代码可能跟你的其他插件有冲突,如果不对,可能是修改日期或者时区捣的鬼.

    你好,新朋友。留言前请先填写昵称邮箱