Files
toppic/includes/img-filters.php
2024-04-06 11:45:36 +02:00

59 lines
2.1 KiB
PHP

<?php
/*-----------------------------------------------------------------------------------*/
/* IMAGES SIZES AND MARKUPS
/*-----------------------------------------------------------------------------------*/
add_filter( 'image_resize_dimensions', 'kktfwp_image_resize_upscale', 10, 6 );
if ( ! function_exists( 'kktfwp_image_resize_upscale' ) ) {
function kktfwp_image_resize_upscale( $default, $orig_w, $orig_h, $new_w, $new_h, $crop ) {
if ( !$crop ) return null;
$aspect_ratio = $orig_w / $orig_h;
$size_ratio = max( $new_w / $orig_w, $new_h / $orig_h );
$crop_w = round( $new_w / $size_ratio );
$crop_h = round( $new_h / $size_ratio );
$s_x = floor( ( $orig_w - $crop_w ) / 2 );
$s_y = floor( ( $orig_h - $crop_h ) / 2 );
return array( 0, 0, (int)$s_x, (int)$s_y, (int)$new_w, (int)$new_h, (int)$crop_w, (int)$crop_h );
}
}
// Filter for portfolio and attachments
add_filter( 'wp_get_attachment_image_attributes', 'kktfwp_portfolio_img_attr', 10, 2 );
if ( ! function_exists( 'kktfwp_portfolio_img_attr' ) ) {
function kktfwp_portfolio_img_attr( $attr, $attachment ) {
$action = empty( $_REQUEST['action'] ) ? '' : $_REQUEST['action'];
if ( is_admin() && !doing_action('wp_ajax_nopriv_kktfwp_more_projects_ajax') && !doing_action('wp_ajax_kktfwp_more_projects_ajax') )return $attr;
if ( ( isset( $attr['data-lazy-load'] ) && (int)$attr['data-lazy-load'] === 1 ) ) {
if ( isset( $attr['srcset'] ) ) {
$attr['data-srcset'] = $attr['srcset'];
$attr['srcset'] = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== 1w';
if ( get_post_meta( get_the_ID(), '_grid_type_value', true ) !== 'Portrait' ) {
$attr['data-sizes'] = 'auto';
}
} else {
$attr['srcset'] = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== 1w';
$attr['data-srcset'] = $attr['src'];
if ( get_post_meta( get_the_ID(), '_grid_type_value', true ) !== 'Portrait' ) {
$attr['data-sizes'] = 'auto';
}
}
}
if ( $full_size = wp_get_attachment_metadata( $attachment->ID ) ) {
$attr['data-full-size'] = $full_size['width'].'x'.$full_size['height'];
}
return $attr;
}
}