細水長流

如何获取 WordPress 博客最近更新「发布/修改文章或页面」日期时间?

WordPress 博客最近更新日期时间可以显示在博客状态统计信息页面,也可以用作缓存过期时间戳,如何获取 WordPress 博客最近更新 (发布/修改文章页面) 日期时间?可以通过查询数据库获取,还可以使用 WordPress 自带函数实现。

「如何获取 WordPress 博客最近更新「发布/修改文章或页面」日期时间?:https://uxtt.com/35」

通过 $wpdb 查询获取 WordPress 博客最近更新日期

先上数据库方法,通过 $wpdb 查询获取 WordPress 博客最近更新 (发布/修改文章) 日期时间。

$last = $wpdb->get_results("SELECT MAX(post_modified) AS MAX_m FROM $wpdb->posts WHERE (post_type = 'post' OR post_type = 'page') AND (post_status = 'publish' OR post_status = 'private')");
$last = date('Y 年 n 月 j 日', strtotime($last[0]->MAX_m));
echo '最后更新:'.$last;

WordPress 内置函数查询博客最近更新日期

这个 WordPress 博客最近更新时间戳可以用作 wp_cache key,这样修改文章/页面,相关缓存就会快速失效,然后自动更新……上面那个代码稍稍折腾也能用,不过按理,WordPress 可能自带相关函数?

「如何获取 WordPress 博客最近更新「发布/修改文章或页面」日期时间?:https://uxtt.com/35」

换了关键词,果然找到了 get_lastpostdate,然后 get_lastpostmodified……

比如下面测试代码:

echo 'get_lastpostdate:'.get_lastpostdate();
echo 'get_lastpostmodified:'.get_lastpostmodified();

会输出如下结果:

「如何获取 WordPress 博客最近更新「发布/修改文章或页面」日期时间?:https://uxtt.com/35」

get_lastpostdate:2021-01-30 04:05:44.000000
get_lastpostmodified:2021-02-07 08:50:45.000000

加上 blog 参数,就会修正时区,输出当地时间:

echo date( 'Y 年 n 月 j 日 H:i:s', strtotime( get_lastpostmodified('blog') ) );

输出:2021 年 2 月 7 日 12:56:10

「如何获取 WordPress 博客最近更新「发布/修改文章或页面」日期时间?:https://uxtt.com/35」

怎么结合 wp_cache 使用?在缓存使用的地方,参考下面代码加上 get_lastpostmodified 即可:

$custom_query = wp_cache_get( 'custom_query', 'custom_query' );
wp_cache_set( 'custom_query:'.md5(maybe_serialize(get_lastpostmodified())), $custom_query, 'custom_query', 3600);

//ADs:uxtt.com | ostarted.com | 0xo.net | ae.mba | sars.win | bdkp.net
//改成:

$custom_query = wp_cache_get( 'custom_query:'.md5(maybe_serialize(get_lastpostmodified())), 'custom_query' );
wp_cache_set( 'custom_query:'.md5(maybe_serialize(get_lastpostmodified())), $custom_query, 'custom_query', 3600);

退出移动版