如何获取WordPress整站最后修改日期(非指定文章或页面)
嘿,这个需求我碰到过好几次,给你分享几个实用的方法,不管是直接查数据库还是用WordPress原生函数都能搞定:
方法一:直接查询数据库(适合快速查看或非开发场景)
如果你能直接访问WordPress的数据库(比如通过phpMyAdmin),可以执行这条SQL语句,它会从所有已发布的文章、页面(你也可以加上自定义文章类型)里找出最后修改的日期:
SELECT MAX(post_modified) AS site_last_modified FROM wp_posts WHERE post_status = 'publish' AND post_type IN ('post', 'page'); -- 这里可以添加你的自定义文章类型,比如'product'
注意:把wp_替换成你自己的数据库表前缀(如果修改过的话)。
方法二:使用WordPress原生函数(推荐开发场景)
如果你要在主题或插件里实现这个功能,更推荐用WordPress的内置函数,这样更安全也符合WP的开发规范。可以写一个自定义函数来获取:
function get_site_last_modified_date() { // 配置查询参数:包含所有需要考虑的内容类型,只查已发布的 $args = array( 'post_type' => array('post', 'page'), // 按需添加自定义文章类型 'post_status' => 'publish', 'posts_per_page' => 1, 'orderby' => 'modified', 'order' => 'DESC', // 关闭不必要的缓存,提升查询性能 'no_found_rows' => true, 'update_post_meta_cache' => false, 'update_post_term_cache' => false ); $latest_modified_post = new WP_Query($args); if ($latest_modified_post->have_posts()) { $latest_modified_post->the_post(); // 自定义日期格式,比如改成'F j, Y'就是类似'October 5, 2024'的格式 $modified_date = get_the_modified_date('Y-m-d H:i:s'); wp_reset_postdata(); // 重置查询,避免影响后续内容 return $modified_date; } return false; // 如果网站还没有任何已发布内容,返回false } // 使用示例:在主题模板里调用 $site_last_modified = get_site_last_modified_date(); if ($site_last_modified) { echo '网站最后更新时间:' . $site_last_modified; }
额外补充:包含用户评论的整体修改日期
如果你的网站需要把用户的已审核评论也算作“网站修改”的一部分,可以用这条SQL语句,取文章修改和评论的最新日期:
SELECT GREATEST( (SELECT MAX(post_modified) FROM wp_posts WHERE post_status = 'publish'), (SELECT MAX(comment_date_gmt) FROM wp_comments WHERE comment_approved = '1') ) AS site_last_modified;
内容的提问来源于stack exchange,提问作者Anastes
相关产品推荐
相关产品推荐

