函数文档

wp_print_revision_templates()

💡 云策文档标注

概述

wp_print_revision_templates() 函数用于输出修订版本功能所需的 JavaScript 模板。它通常在 WordPress 后台的编辑页面中调用,以支持版本比较和恢复操作。

关键要点

  • 函数 wp_print_revision_templates() 输出修订版本体验的 JavaScript 模板
  • 它依赖于全局变量 $post 来获取当前文章信息
  • 该函数自 WordPress 4.1.0 版本引入

相关函数

  • wp_check_post_lock() – 检查文章是否正被其他用户编辑
  • esc_attr_x() – 带上下文的翻译并转义属性
  • esc_html_e() – 显示转义的 HTML 翻译文本
  • _x() – 显示带上下文的翻译字符串
  • esc_attr_e() – 显示转义的属性翻译文本
  • __() – 获取翻译文本
  • _e() – 显示翻译文本

📄 原文内容

Print JavaScript templates required for the revisions experience.

Source

function wp_print_revision_templates() {
global $post;
?><script id="tmpl-revisions-frame" type="text/html">
<div class="revisions-control-frame"></div>
<div class="revisions-diff-frame"></div>
</script>

<script id="tmpl-revisions-buttons" type="text/html">
<div class="revisions-previous">
<input class="button" type="button" value="<?php echo esc_attr_x( 'Previous', 'Button label for a previous revision' ); ?>" />
</div>

<div class="revisions-next">
<input class="button" type="button" value="<?php echo esc_attr_x( 'Next', 'Button label for a next revision' ); ?>" />
</div>
</script>

<script id="tmpl-revisions-slider-hidden-help" type="text/html">
<h2 class="screen-reader-text"><?php esc_html_e( 'Select a revision' ); ?></h2>
<p id="revisions-slider-hidden-help" hidden><?php esc_html_e( 'Change revision by using the left and right arrow keys' ); ?></p>
</script>

<script id="tmpl-revisions-checkbox" type="text/html">
<div class="revision-toggle-compare-mode">
<label>
<input type="checkbox" class="compare-two-revisions"
<#
if ( 'undefined' !== typeof data && data.model.attributes.compareTwoMode ) {
#>
checked="checked"<#
}
#>

/>
<?php esc_html_e( 'Compare any two revisions' ); ?>
</label>
</div>
</script>

<script id="tmpl-revisions-meta" type="text/html">
<# if ( ! _.isUndefined( data.attributes ) ) { #>
<div class="diff-title">
<# if ( 'from' === data.type ) { #>
<strong id="diff-title-from"><?php _ex( 'From:', 'Followed by post revision info' ); ?></strong>
<# } else if ( 'to' === data.type ) { #>
<strong id="diff-title-to"><?php _ex( 'To:', 'Followed by post revision info' ); ?></strong>
<# } #>
<div class="author-card<# if ( data.attributes.autosave ) { #> autosave<# } #>">
<div>
{{{ data.attributes.author.avatar }}}
<div class="author-info" id="diff-title-author">
<# if ( data.attributes.autosave ) { #>
<span class="byline">
<?php
printf(
/* translators: %s: User's display name. */
__( 'Autosave by %s' ),
'<span class="author-name">
{{ data.attributes.author.name }}</span>'
);
?>

</span>
<# } else if ( data.attributes.current ) { #>
<span class="byline">
<?php
printf(
/* translators: %s: User's display name. */
__( 'Current Revision by %s' ),
'<span class="author-name">
{{ data.attributes.author.name }}</span>'
);
?>

</span>
<# } else { #>
<span class="byline">
<?php
printf(
/* translators: %s: User's display name. */
__( 'Revision by %s' ),
'<span class="author-name">
{{ data.attributes.author.name }}</span>'
);
?>

</span>
<# } #>
<span class="time-ago">
{{ data.attributes.timeAgo }}</span>
<span class="date">(
{{ data.attributes.dateShort }})</span>
</div>
</div>
<# if ( 'to' === data.type && data.attributes.restoreUrl ) { #>
<input <?php if ( wp_check_post_lock( $post->ID ) ) { ?>
disabled="disabled"
<?php } else { ?>
<# if ( data.attributes.current ) { #>
disabled="disabled"
<# } #>
<?php } ?>
<# if ( data.attributes.autosave ) { #>
type="button" class="restore-revision button button-primary" value="<?php esc_attr_e( 'Restore This Autosave' ); ?>" />
<# } else { #>
type="button" class="restore-revision button button-primary" value="<?php esc_attr_e( 'Restore This Revision' ); ?>" />
<# } #>
<# } #>
</div>
<# if ( 'tooltip' === data.type ) { #>
<div class="revisions-tooltip-arrow"><span></span></div>
<# } #>
<# } #>
</script>

<script id="tmpl-revisions-diff" type="text/html">
<div class="loading-indicator"><span class="spinner"></span></div>
<div class="diff-error"><?php _e( 'An error occurred while loading the comparison. Please refresh the page and try again.' ); ?></div>
<div class="diff">
<# _.each( data.fields, function( field ) { #>
<h2>
{{ field.name }}</h2>
{{{ field.diff }}}
<# }); #>
</div>
</script>
</pre><p class="wporg-dot-link-list"><a href="https://developer.wordpress.org/reference/files/wp-admin/includes/revision.php/">View all references</a> <a href="https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-admin/includes/revision.php#L364">View on Trac</a> <a href="https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/revision.php#L364-L480">View on GitHub</a></p></section>

<section class="wp-block-wporg-code-reference-related" data-nosnippet="true"><h2 id="related" class="is-toc-heading wp-block-heading has-heading-5-font-size" tabindex="-1" ><a href="#related">Related</a></h2> <section style="margin-top:var(--wp--preset--spacing--20)" class="wp-block-wporg-code-table" id="uses"><figure class="wp-block-table "><table><thead><tr><th scope="col">Uses</th><th scope="col">Description</th></tr></thead><tbody><tr class=""><td><a href="https://developer.wordpress.org/reference/functions/wp_check_post_lock/">wp_check_post_lock()</a><code>wp-admin/includes/post.php

Determines whether the post is currently being edited by another user.

esc_attr_x()wp-includes/l10n.php

Translates string with gettext context, and escapes it for safe use in an attribute.

esc_html_e()wp-includes/l10n.php

Displays translated text that has been escaped for safe use in HTML output.

_ex()wp-includes/l10n.php

Displays translated string with gettext context.

esc_attr_e()wp-includes/l10n.php

Displays translated text that has been escaped for safe use in an attribute.

__()wp-includes/l10n.php

Retrieves the translation of $text.

_e()wp-includes/l10n.php

Displays translated text.

Show 2 moreShow less

Changelog

Version Description
4.1.0 Introduced.