函数文档

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

Return

string|false i18n formatted datetimestamp or localized ‘Current Revision’.

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.