функция
since 2.1.0
wp_crop_image()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
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
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. |

