包括我在内的很多朋友有这么一个困扰:计算自己年龄不方便,每天要用计算器计算自己今天几岁了,然后到博客的“关于”页面进行更新。今特写一插件,解决我们共同的烦恼。插件启用后,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 ); 哦。
已知问题
- 如果你出生地和博客服务器所在地之时区不同,则输出的年龄会有偏差。
- 如果你博客服务器时间设置不正确,则输出的年龄也会有偏差。
- 如果你生日写的不对,则输出的年龄也会有偏差。