函数文档

wp_ajax_imgedit_preview()

💡 云策文档标注

概述

wp_ajax_imgedit_preview() 是一个 WordPress AJAX 处理函数,用于处理图像编辑器的预览请求。它验证用户权限和 AJAX 引用,然后调用 stream_preview_image() 来流式传输图像预览。

关键要点

  • 函数通过 AJAX 处理图像编辑器预览,确保用户有编辑帖子的权限。
  • 使用 check_ajax_referer() 验证 AJAX 请求,防止外部请求处理。
  • 调用 stream_preview_image() 来流式传输图像,并处理 $_REQUEST['history'] 中的更改。
  • 在错误或权限不足时,使用 wp_die() 终止执行并显示错误。

代码示例

function wp_ajax_imgedit_preview() {
	$post_id = (int) $_GET['postid'];
	if ( empty( $post_id ) || ! current_user_can( 'edit_post', $post_id ) ) {
		wp_die( -1 );
	}

	check_ajax_referer( "image_editor-$post_id" );

	require_once ABSPATH . 'wp-admin/includes/image-edit.php';

	if ( ! stream_preview_image( $post_id ) ) {
		wp_die( -1 );
	}

	wp_die();
}

注意事项

  • 此函数从 WordPress 3.1.0 版本引入,是核心 AJAX 处理的一部分。
  • 依赖于 stream_preview_image() 函数来实际处理图像流,该函数位于 wp-admin/includes/image-edit.php。
  • 确保在调用前正确设置 $_GET['postid'] 和 $_REQUEST['history'] 参数。

📄 原文内容

Handles image editor previews via AJAX.

Source

function wp_ajax_imgedit_preview() {
	$post_id = (int) $_GET['postid'];
	if ( empty( $post_id ) || ! current_user_can( 'edit_post', $post_id ) ) {
		wp_die( -1 );
	}

	check_ajax_referer( "image_editor-$post_id" );

	require_once ABSPATH . 'wp-admin/includes/image-edit.php';

	if ( ! stream_preview_image( $post_id ) ) {
		wp_die( -1 );
	}

	wp_die();
}

Changelog

Version Description
3.1.0 Introduced.