wp_post_revision_title()
云策文档标注
概述
wp_post_revision_title() 函数用于获取文章修订版的格式化日期时间戳,并可选择性地链接到修订版页面。它处理修订版对象或ID,返回本地化的日期字符串,包括当前修订版或自动保存的标记。
关键要点
- 函数接受两个参数:$revision(必需,修订版ID或WP_Post对象)和$link(可选,布尔值,默认为true,控制是否链接到修订版页面)。
- 返回值为字符串或false:成功时返回i18n格式化的日期时间戳,可能附加“Current Revision”或“Autosave”标记;失败时返回false。
- 内部逻辑包括验证修订版存在性、检查post_type是否为'post'、'page'或'revision',并使用date_i18n()进行本地化日期格式化。
- 根据wp_is_post_revision()和wp_is_post_autosave()判断修订版类型,添加相应标记。
- 如果$link为true且用户有编辑权限,日期会链接到编辑页面。
代码示例
// 示例:获取修订版标题并链接
$revision_id = 123;
$title = wp_post_revision_title($revision_id, true);
echo $title; // 输出如 "2023年10月15日 @ 14:30:00 [Current Revision]"(带链接)
// 示例:不链接
$title_no_link = wp_post_revision_title($revision_id, false);
echo $title_no_link; // 输出纯文本日期注意事项
- 确保传入有效的修订版ID或WP_Post对象,否则函数可能返回false或原始输入。
- 链接功能依赖于current_user_can('edit_post')权限和get_edit_post_link()的可用性。
- 日期格式通过_x()函数本地化,可基于WordPress翻译上下文进行自定义。
- 函数自WordPress 2.6.0版本引入,兼容后续版本。
原文内容
Retrieves formatted date timestamp of a revision (linked to that revisions’s page).
Parameters
$revisionint|WP_Postrequired-
Revision ID or revision object.
$linkbooloptional-
Whether to link to revision’s page.
Default:
true
Source
function wp_post_revision_title( $revision, $link = true ) {
$revision = get_post( $revision );
if ( ! $revision ) {
return $revision;
}
if ( ! in_array( $revision->post_type, array( 'post', 'page', 'revision' ), true ) ) {
return false;
}
/* translators: Revision date format, see https://www.php.net/manual/datetime.format.php */
$datef = _x( 'F j, Y @ H:i:s', 'revision date format' );
/* translators: %s: Revision date. */
$autosavef = __( '%s [Autosave]' );
/* translators: %s: Revision date. */
$currentf = __( '%s [Current Revision]' );
$date = date_i18n( $datef, strtotime( $revision->post_modified ) );
$edit_link = get_edit_post_link( $revision->ID );
if ( $link && current_user_can( 'edit_post', $revision->ID ) && $edit_link ) {
$date = "<a href='$edit_link'>$date</a>";
}
if ( ! wp_is_post_revision( $revision ) ) {
$date = sprintf( $currentf, $date );
} elseif ( wp_is_post_autosave( $revision ) ) {
$date = sprintf( $autosavef, $date );
}
return $date;
}
Changelog
| Version | Description |
|---|---|
| 2.6.0 | Introduced. |