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. |