既然你不行,那就我来!
简单的加上几句并不高端的 PHP 代码后,就实现了这个功能:
编辑主题下的 comments-ajax.php 文件(启用 ajax 评论的博客才有),找到如下代码:
do_action('pre_comment_on_post', $comment_post_ID);
然后,在这行代码之后添加删除缓存代码,保存即可:
//有人评论将自动删除已存在缓存 $post_data = get_post($post->ID, ARRAY_A); $slug = $post_data['post_name']; $cache_s = WP_CONTENT_DIR."/cache/supercache/".$_SERVER['SERVER_NAME']."https://zhang.ge/".$post->ID.".html/index.html"; $cache_sd = WP_CONTENT_DIR."/cache/supercache/".$_SERVER['SERVER_NAME']."https://zhang.ge/".$post->ID.".html"; $cache_p = WP_CONTENT_DIR."/cache/supercache/".$_SERVER['SERVER_NAME']."https://zhang.ge/".$slug."/index.html"; $cache_pd = WP_CONTENT_DIR."/cache/supercache/".$_SERVER['SERVER_NAME']."https://zhang.ge/".$slug; if (file_exists($cache_s)) { unlink($cache_s); rmdir($cache_sd); } if (file_exists($cache_p)) { unlink($cache_p); rmdir($cache_pd); }
现在有人提交评论时,将会判断是否存在该页缓存,如果存在就删除,从而实现了我要的功能。
本来想用 is_page() 和 is_single()来判断页面内容,从而简化代码的,可惜不生效,至少用上面的笨方法了!反正能实现就可以了。