函数文档

wp_ajax_get_post_thumbnail_html()

💡 云策文档标注

概述

wp_ajax_get_post_thumbnail_html() 是一个 WordPress AJAX 处理函数,用于通过 AJAX 请求获取文章特色图像的 HTML 内容。它验证用户权限和请求安全性,并返回 JSON 格式的成功响应。

关键要点

  • 函数处理 AJAX 请求,接收 post_id 和 thumbnail_id 参数来获取特色图像 HTML。
  • 通过 check_ajax_referer() 验证 AJAX 请求的 nonce,确保安全性。
  • 使用 current_user_can() 检查当前用户是否有编辑文章的权限,否则通过 wp_die() 终止执行。
  • 支持向后兼容,thumbnail_id 为 -1 时表示无特色图像,转换为 null。
  • 调用 _wp_post_thumbnail_html() 生成 HTML,并通过 wp_send_json_success() 返回 JSON 成功响应。

代码示例

function wp_ajax_get_post_thumbnail_html() {
    $post_id = (int) $_POST['post_id'];

    check_ajax_referer( "update-post_$post_id" );

    if ( ! current_user_can( 'edit_post', $post_id ) ) {
        wp_die( -1 );
    }

    $thumbnail_id = (int) $_POST['thumbnail_id'];

    // For backward compatibility, -1 refers to no featured image.
    if ( -1 === $thumbnail_id ) {
        $thumbnail_id = null;
    }

    $return = _wp_post_thumbnail_html( $thumbnail_id, $post_id );
    wp_send_json_success( $return );
}

注意事项

  • 此函数自 WordPress 4.6.0 版本引入,使用时需确保版本兼容性。
  • 相关函数包括 _wp_post_thumbnail_html()、current_user_can()、check_ajax_referer()、wp_send_json_success() 和 wp_die(),用于处理 HTML 生成、权限检查、安全验证和响应发送。

📄 原文内容

Handles retrieving HTML for the featured image via AJAX.

Source

function wp_ajax_get_post_thumbnail_html() {
	$post_id = (int) $_POST['post_id'];

	check_ajax_referer( "update-post_$post_id" );

	if ( ! current_user_can( 'edit_post', $post_id ) ) {
		wp_die( -1 );
	}

	$thumbnail_id = (int) $_POST['thumbnail_id'];

	// For backward compatibility, -1 refers to no featured image.
	if ( -1 === $thumbnail_id ) {
		$thumbnail_id = null;
	}

	$return = _wp_post_thumbnail_html( $thumbnail_id, $post_id );
	wp_send_json_success( $return );
}

Changelog

Version Description
4.6.0 Introduced.