用 WordPress Shortcode API 实时输出你当前的年龄

包括我在内的很多朋友有这么一个困扰:计算自己年龄不方便,每天要用计算器计算自己今天几岁了,然后到博客的“关于”页面进行更新。今特写一插件,解决我们共同的烦恼。插件启用后,WordPress 会教导 PHP 帮您进行各种复杂生日计算。

<?php
/*
Plugin Name: Wait... How old am I right now?
Plugin URI: http://jiehan.org/tech/output-age-with-wordpress-shortcode-api/
Description: Shortcode that outputs your current age in case you forget.
Version: 250.000 (significant three)
Author: Anonymous
Author URI: http://jiehan.org/
License: GPL2
*/
 
define( 'MY_BIRTHDAY', '1994-12-12' );  // put in your birthday here
                                        // (best in YYYY-MM-DD)
 
function tell_the_world_how_old_i_am( $atts ) {
  date_default_timezone_set( get_option( 'timezone_string' ) );
  $time_i_have_been_existing = date_diff( date_create( MY_BIRTHDAY ), date_create() );
  date_default_timezone_set( 'UTC' );
 
  return $time_i_have_been_existing->format( '%y' );
}
add_shortcode( 'age', 'tell_the_world_how_old_i_am' );
 
?>

然后怎么用?先去 wp-content/plugins/ 下面创建一个文件,把上述内容拷贝进去,然后启用这个插件…

然后呢?然后去改你的页面啦,把 hardcoded(中文不太吉利)的年龄替换成 [age],比如我的:

我是郑界涵。现 Peddie School 十年级学生,今年 [age] 岁了...

将自动被替换为,

我是郑界涵。现 Peddie School 十年级学生,今年 17 岁了...

当然,这个 Shortcode API 在文章页面也适用,你可以随时告诉别人你几岁了。另外,如果不是在文章或页面中,比如在主题的某个地方调用你的年龄,可以写 echo tell_the_world_how_old_i_am( null ); 哦。

已知问题

  • 如果你出生地和博客服务器所在地之时区不同,则输出的年龄会有偏差。
  • 如果你博客服务器时间设置不正确,则输出的年龄也会有偏差。
  • 如果你生日写的不对,则输出的年龄也会有偏差。