oont-contents/plugins/wp-optimize/includes/class-wpo-image-utils.php
2025-02-10 13:57:45 +01:00

74 lines
1.7 KiB
PHP

<?php
if (!defined('ABSPATH')) die('Access denied.');
if (!class_exists('WPO_Image_Utils')) :
class WPO_Image_Utils {
/**
* Get image paths to resized attachment images.
*
* @param int $attachment_id
* @return array
*/
public static function get_attachment_files($attachment_id) {
$attachment_images = array();
$upload_dir = wp_get_upload_dir();
// get sizes info from attachment meta data.
$meta = wp_get_attachment_metadata($attachment_id);
if (!is_array($meta) || !array_key_exists('sizes', $meta)) return $attachment_images;
$image_sizes = array_keys($meta['sizes']);
// build list of resized images.
foreach ($image_sizes as $size) {
$image = image_get_intermediate_size($attachment_id, $size);
if (is_array($image)) {
$file = trailingslashit($upload_dir['basedir']) . $image['path'];
if (is_file($file) && !in_array($file, $attachment_images)) {
$attachment_images[$size] = $file;
}
}
}
return $attachment_images;
}
/**
* Returns an array of allowed extensions
*
* @return array
*/
public static function get_allowed_extensions() {
return array('gif', 'jpeg', 'jpg', 'png');
}
/**
* Returns given file extension
*
* @param string $file
*
* @return mixed
*/
public static function get_extension($file) {
$file_type = wp_check_filetype($file);
return $file_type['ext'];
}
/**
* Tests if given extension is present in allowed extensions array
*
* @param string $ext Extension to check
* @param array $allowed_extensions Array of allowed extensions
*
* @return bool
*/
public static function is_supported_extension($ext, $allowed_extensions) {
return in_array($ext, $allowed_extensions);
}
}
endif;