在预览选项卡/窗口上输出一个小JS片段,以在卸载时删除window.name。

原型

wp_post_preview_js()

描述

这可以防止在用户导航时重复使用相同的选项卡进行预览。

源文件

路径:wp-includes/functions.php

<?php
...
function wp_post_preview_js() {
	global $post;
	if ( ! is_preview() || empty( $post ) ) {
		return;
	}
	// Has to match the window name used in post_submit_meta_box()
	$name = 'wp-preview-' . (int) $post->ID;
	?>
	<script>
	( function() {
		var query = document.location.search;
		if ( query && query.indexOf( 'preview=true' ) !== -1 ) {
			window.name = '<?php echo $name; ?>';
		}
		if ( window.addEventListener ) {
			window.addEventListener( 'unload', function() { window.name = ''; }, false );
		}
	}());
	</script>
	<?php
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/wp_post_preview_js/