wp_post_revision_title_expanded()
云策文档标注
概述
wp_post_revision_title_expanded() 函数用于获取修订版的格式化日期时间戳,并链接到修订版页面。它返回一个包含作者头像、姓名、时间差和日期的字符串,支持自动保存和当前修订版的标识。
关键要点
- 参数:$revision(必需,修订版 ID 或 WP_Post 对象),$link(可选,布尔值,是否链接到修订版页面,默认 true)
- 返回值:字符串(格式化日期时间戳)或 false(如果 $revision 无效或 post_type 不是 'post'、'page'、'revision')
- 功能:基于修订版对象生成包含作者信息、时间差和本地化日期的标题,可应用过滤器 wp_post_revision_title_expanded 进行自定义
- 相关函数:使用 get_post()、get_avatar()、date_i18n()、human_time_diff() 等辅助函数处理数据和格式化
代码示例
function wp_post_revision_title_expanded( $revision, $link = true ) {
$revision = get_post( $revision );
if ( ! $revision ) {
return $revision;
}
if ( ! in_array( $revision->post_type, array( 'post', 'page', 'revision' ), true ) ) {
return false;
}
$author = get_the_author_meta( 'display_name', $revision->post_author );
$datef = _x( 'F j, Y @ H:i:s', 'revision date format' );
$gravatar = get_avatar( $revision->post_author, 24 );
$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 = "$date";
}
$revision_date_author = sprintf(
__( '%1$s %2$s, %3$s ago (%4$s)' ),
$gravatar,
$author,
human_time_diff( strtotime( $revision->post_modified_gmt ) ),
$date
);
$autosavef = __( '%s [Autosave]' );
$currentf = __( '%s [Current Revision]' );
if ( ! wp_is_post_revision( $revision ) ) {
$revision_date_author = sprintf( $currentf, $revision_date_author );
} elseif ( wp_is_post_autosave( $revision ) ) {
$revision_date_author = sprintf( $autosavef, $revision_date_author );
}
return apply_filters( 'wp_post_revision_title_expanded', $revision_date_author, $revision, $link );
}注意事项
- 函数内部使用 get_post() 获取修订版对象,如果对象不存在或 post_type 不符合要求,会返回 false 或原始值
- 日期格式通过 _x() 函数本地化,支持翻译上下文
- 链接功能依赖于 current_user_can() 权限检查和 get_edit_post_link() 可用性
- 过滤器 wp_post_revision_title_expanded 允许开发者自定义输出字符串
原文内容
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_expanded( $revision, $link = true ) {
$revision = get_post( $revision );
if ( ! $revision ) {
return $revision;
}
if ( ! in_array( $revision->post_type, array( 'post', 'page', 'revision' ), true ) ) {
return false;
}
$author = get_the_author_meta( 'display_name', $revision->post_author );
/* translators: Revision date format, see https://www.php.net/manual/datetime.format.php */
$datef = _x( 'F j, Y @ H:i:s', 'revision date format' );
$gravatar = get_avatar( $revision->post_author, 24 );
$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>";
}
$revision_date_author = sprintf(
/* translators: Post revision title. 1: Author avatar, 2: Author name, 3: Time ago, 4: Date. */
__( '%1$s %2$s, %3$s ago (%4$s)' ),
$gravatar,
$author,
human_time_diff( strtotime( $revision->post_modified_gmt ) ),
$date
);
/* translators: %s: Revision date with author avatar. */
$autosavef = __( '%s [Autosave]' );
/* translators: %s: Revision date with author avatar. */
$currentf = __( '%s [Current Revision]' );
if ( ! wp_is_post_revision( $revision ) ) {
$revision_date_author = sprintf( $currentf, $revision_date_author );
} elseif ( wp_is_post_autosave( $revision ) ) {
$revision_date_author = sprintf( $autosavef, $revision_date_author );
}
/**
* Filters the formatted author and date for a revision.
*
* @since 4.4.0
*
* @param string $revision_date_author The formatted string.
* @param WP_Post $revision The revision object.
* @param bool $link Whether to link to the revisions page, as passed into
* wp_post_revision_title_expanded().
*/
return apply_filters( 'wp_post_revision_title_expanded', $revision_date_author, $revision, $link );
}
Hooks
- apply_filters( ‘wp_post_revision_title_expanded’, string $revision_date_author, WP_Post $revision, bool $link )
-
Filters the formatted author and date for a revision.
Changelog
| Version | Description |
|---|---|
| 3.6.0 | Introduced. |