wppaste
WordPress

WP_REST_Attachments_Controller

Since
4.7.0
Source
wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:27
Core controller used to access attachments via the REST API.

Compatibility

WordPress
since 4.7.0
  • 6.7.7
  • 6.8.8
  • 6.9.7
  • 7.0.4
  • 7.1.0

Present in every tracked release (6.7.7 to 7.1.0).

Hooks and filters fired · 15

Every hook that fires from inside WP_REST_Attachments_Controller, in the order it appears in the class, grouped by the method that fires it.

Properties · 1

$allow_batchfalseprotected
Whether the controller supports batching.

Methods · 38

Source code

class WP_REST_Attachments_Controller extends WP_REST_Posts_Controller { 	/**	 * Whether the controller supports batching.	 *	 * @since 5.9.0	 * @var false	 */	protected $allow_batch = false; 	/**	 * Image size token for the source-format original preserved alongside a	 * client-generated derivative (e.g. the HEIC file kept next to its JPEG).	 *	 * Used both in the `/sideload` route schema and when dispatching the	 * sideloaded file to its metadata key, so the two never drift apart.	 *	 * @since 7.1.0	 * @var string	 */	const IMAGE_SIZE_SOURCE_ORIGINAL = 'source_original'; 	/**	 * Metadata key holding the basename of the source-format original.	 *	 * Deliberately specific so it never collides with the generic `original`	 * or `original_image` keys other flows write to.	 *	 * @since 7.1.0	 * @var string	 */	const META_KEY_SOURCE_IMAGE = 'source_image'; 	/**	 * Post meta key recording the file names produced by the sideload endpoint.	 *	 * Each successful sideload appends the file name(s) it created for an	 * attachment under this key. The finalize endpoint reads them back to	 * confirm every stored sub-size was actually produced here, rather than	 * trusting a client-supplied name that could point at another attachment's	 * files. Stored as one row per value (via {@see add_post_meta()}) so concurrent	 * sideloads never read-modify-write a shared value.	 *	 * @since 7.1.0	 * @var string	 */	const META_KEY_SIDELOAD_FILE_NAME = '_wp_sideloaded_file'; 	/**	 * Registers the routes for attachments.	 *	 * @since 5.3.0	 *	 * @see register_rest_route()	 */	public function register_routes() {		parent::register_routes();		register_rest_route(			$this->namespace,			'/' . $this->rest_base . '/(?P<id>[\d]+)/post-process',			array(				'methods'             => WP_REST_Server::CREATABLE,				'callback'            => array( $this, 'post_process_item' ),				'permission_callback' => array( $this, 'post_process_item_permissions_check' ),				'args'                => array(					'id'     => array(						'description' => __( 'Unique identifier for the attachment.' ),						'type'        => 'integer',					),					'action' => array(						'type'     => 'string',						'enum'     => array( 'create-image-subsizes' ),						'required' => true,					),				),			)		);		register_rest_route(			$this->namespace,			'/' . $this->rest_base . '/(?P<id>[\d]+)/edit',

Changelog

Introduced in 4.7.0. 17 changes between 6.7.7 and 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 7.1.0

Signature, return type and hooks compared across 5 parsed releases.

7.1.0
Method get_endpoint_args_for_item_schema() added.verified against source
7.1.0
Method create_item_from_url() added.verified against source
7.1.0
Method remove_client_side_media_processing_filters() added.verified against source
7.1.0
Method sideload_item_permissions_check() added.verified against source
7.1.0
Method validate_image_size_names() added.verified against source
7.1.0
Method get_special_image_sizes() added.verified against source
7.1.0
Method validate_image_dimensions() added.verified against source
7.1.0
Method dimension_exceeds_max() added.verified against source
7.1.0
Method sideload_item() added.verified against source
7.1.0
Method filter_wp_unique_filename() added.verified against source
7.1.0
Method validate_sub_size_provenance() added.verified against source
7.1.0
Method get_sideloaded_file_names() added.verified against source
7.1.0
Method get_attachment_upload_subdir() added.verified against source
7.1.0
Method finalize_item() added.verified against source
7.0.4
Method get_attachment_filename() added.verified against source
7.0.4
Method get_attachment_filesize() added.verified against source
6.9.7
Method prepare_links() added.verified against source
4.7.0
Introduced.from the docblock

About this page

Parsed data
Generated from the wordpress-develop 7.1.0 tag, from src/wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.