# wp_crop_image()

URL: https://chugunov.pro/api-wordpress/functions/wp_crop_image/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 2.1.0.

## Сигнатура

```php
wp_crop_image( string|int $src, int $src_x, int $src_y, int $src_w, int $src_h, int $dst_w, int $dst_h, bool|false $src_abs = false, string|false $dst_file = false ): string|WP_Error
```

## Описание

Обрезает изображение до заданного размера.

## Параметры

- `$src` `string|int` — обязательный. Исходный файл или ID вложения.
- `$src_x` `int` — обязательный. Начальная позиция x, с которой начинается обрезка.
- `$src_y` `int` — обязательный. Начальная позиция y, с которой начинается обрезка.
- `$src_w` `int` — обязательный. Ширина обрезки.
- `$src_h` `int` — обязательный. Высота обрезки.
- `$dst_w` `int` — обязательный. Ширина результата.
- `$dst_h` `int` — обязательный. Высота результата.
- `$src_abs` `bool|false` — необязательный, по умолчанию `false`. Являются ли точки обрезки исходного изображения абсолютными.
- `$dst_file` `string|false` — необязательный, по умолчанию `false`. Файл назначения, в который выполняется запись.

## Возвращаемое значение

`string|WP_Error` — WP_Error

## Исходный код

Файл: `wp-admin/includes/image.php:25`

```php
function wp_crop_image( $src, $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, $src_abs = false, $dst_file = false ) {
	$src_file = $src;
	if ( is_numeric( $src ) ) { // Handle int as attachment ID.
		$src_file = get_attached_file( $src );

		if ( ! file_exists( $src_file ) ) {
			/*
			 * If the file doesn't exist, attempt a URL fopen on the src link.
			 * This can occur with certain file replication plugins.
			 */
			$src = _load_image_to_edit_path( $src, 'full' );
		} else {
			$src = $src_file;
		}
	}

	$editor = wp_get_image_editor( $src );
	if ( is_wp_error( $editor ) ) {
		return $editor;
	}

	$src = $editor->crop( $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, $src_abs );
	if ( is_wp_error( $src ) ) {
		return $src;
	}

	if ( ! $dst_file ) {
		$dst_file = str_replace( wp_basename( $src_file ), 'cropped-' . wp_basename( $src_file ), $src_file );
	}

	/*
	 * The directory containing the original file may no longer exist when
	 * using a replication plugin.
	 */
	wp_mkdir_p( dirname( $dst_file ) );

	$dst_file = dirname( $dst_file ) . '/' . wp_unique_filename( dirname( $dst_file ), wp_basename( $dst_file ) );

	$result = $editor->save( $dst_file );
	if ( is_wp_error( $result ) ) {
		return $result;
	}

	if ( ! empty( $result['path'] ) ) {
		return $result['path'];
	}

	return $dst_file;
}
```

## История изменений

- 2.1.0 — Introduced.

## Связанные

Использует: [`_load_image_to_edit_path`](https://chugunov.pro/api-wordpress/functions/_load_image_to_edit_path/), [`wp_mkdir_p`](https://chugunov.pro/api-wordpress/functions/wp_mkdir_p/), [`wp_unique_filename`](https://chugunov.pro/api-wordpress/functions/wp_unique_filename/), [`wp_get_image_editor`](https://chugunov.pro/api-wordpress/functions/wp_get_image_editor/), [`WP_Image_Editor`](https://chugunov.pro/api-wordpress/functions/wp_image_editor/), [`get_attached_file`](https://chugunov.pro/api-wordpress/functions/get_attached_file/), [`wp_basename`](https://chugunov.pro/api-wordpress/functions/wp_basename/), [`is_wp_error`](https://chugunov.pro/api-wordpress/functions/is_wp_error/).
Используется в: [`wp_ajax_crop_image`](https://chugunov.pro/api-wordpress/functions/wp_ajax_crop_image/), `Custom_Image_Header::ajax_header_crop`, `Custom_Image_Header::step_2`, `Custom_Image_Header::step_3`.

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_crop_image/
