Ajax处理程序,用于设置附件的特色图像。

原型

wp_ajax_set_attachment_thumbnail()

源文件

路径:wp-admin/includes/ajax-actions.php

<?php
...
function wp_ajax_set_attachment_thumbnail() {
	if ( empty( $_POST['urls'] ) || ! is_array( $_POST['urls'] ) ) {
		wp_send_json_error();
	}
	$thumbnail_id = (int) $_POST['thumbnail_id'];
	if ( empty( $thumbnail_id ) ) {
		wp_send_json_error();
	}
	$post_ids = array();
	// For each URL, try to find its corresponding post ID.
	foreach ( $_POST['urls'] as $url ) {
		$post_id = attachment_url_to_postid( $url );
		if ( ! empty( $post_id ) ) {
			$post_ids[] = $post_id;
		}
	}
	if ( empty( $post_ids ) ) {
		wp_send_json_error();
	}
	$success = 0;
	// For each found attachment, set its thumbnail.
	foreach ( $post_ids as $post_id ) {
		if ( ! current_user_can( 'edit_post', $post_id ) ) {
			continue;
		}
		if ( set_post_thumbnail( $post_id, $thumbnail_id ) ) {
			$success++;
		}
	}
	if ( 0 === $success ) {
		wp_send_json_error();
	} else {
		wp_send_json_success();
	}
	wp_send_json_error();
}
...
?>

其他

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