_clear_modified_cache_on_transition_comment_status()
云策文档标注
概述
此函数用于在评论状态变更时清除 lastcommentmodified 缓存值,确保缓存数据与评论状态同步。
关键要点
- 当评论状态变为或离开 'approved' 状态时,触发缓存清除操作。
- 使用 wp_cache_delete_multiple() 函数批量删除与 lastcommentmodified 相关的缓存键。
- 缓存键包括 'server'、'gmt' 和 'blog' 时区版本,以覆盖不同时间设置。
代码示例
function _clear_modified_cache_on_transition_comment_status( $new_status, $old_status ) {
if ( 'approved' === $new_status || 'approved' === $old_status ) {
$data = array();
foreach ( array( 'server', 'gmt', 'blog' ) as $timezone ) {
$data[] = "lastcommentmodified:$timezone";
}
wp_cache_delete_multiple( $data, 'timeinfo' );
}
}注意事项
- 此函数自 WordPress 4.7.0 版本引入,需确保兼容性。
- 参数 $new_status 和 $old_status 均为必需字符串,分别表示新和旧的评论状态。
- 缓存清除操作针对 'timeinfo' 缓存组,避免影响其他缓存数据。
原文内容
Clears the lastcommentmodified cached value when a comment status is changed.
Description
Deletes the lastcommentmodified cache key when a comment enters or leaves ‘approved’ status.
Parameters
$new_statusstringrequired-
The new comment status.
$old_statusstringrequired-
The old comment status.
Source
function _clear_modified_cache_on_transition_comment_status( $new_status, $old_status ) {
if ( 'approved' === $new_status || 'approved' === $old_status ) {
$data = array();
foreach ( array( 'server', 'gmt', 'blog' ) as $timezone ) {
$data[] = "lastcommentmodified:$timezone";
}
wp_cache_delete_multiple( $data, 'timeinfo' );
}
}
Changelog
| Version | Description |
|---|---|
| 4.7.0 | Introduced. |