当我在wordpress上传图像时,知道它的尺寸。让我们说这个图像叫做image.jpg。我现在想要wordpress将图像url重命名为image-w-180-h-200.jpg(例如,图像的宽度为180像素,高度为200像素)。无论如何,我可以将这些细节附加到网址,以便我可以直接“检索”这些参数吗? (我的目标是最终通过javascript获取img的宽度和高度,但这样我就不必预先加载img来获取它的尺寸,wordpress已经为我完成了工作)
干杯!
答案 0 :(得分:1)
(改编自https://wordpress.stackexchange.com/questions/38582/hook-to-get-image-filename-when-it-is-uploaded)
function rename_image($results) {
if( $results['type'] === 'image/jpeg' ) { // or /png or /tif / /whatever
$filename = $results[ 'file' ]; // Use this line to add height and width of image;
$url = $results[ 'url' ];
// manipulate the image
}
}
add_action('wp_handle_upload', 'rename_image');
有关此
的更多信息,请阅读指示的网址答案 1 :(得分:1)
另一种方法是在上传时修改缩略图文件名。以下内容可用于重命名新上传的图像。
来自其他WPSE答案:https://wordpress.stackexchange.com/a/51983/12615
切入追逐,这是full working code。
理论上,您应该将函数bt_image_make_intermediate_size
更改为: 未测试
function bt_image_make_intermediate_size( $file, $width, $height, $crop = false, $size )
{
if ( $width || $height ) {
$suffix = 'w-' . $width . '-h-' . $height;
$resized_file = bt_image_resize(
$file, $width, $height, $crop, $suffix, null, 90
);
if (
!is_wp_error( $resized_file )
&& $resized_file
&& $info = getimagesize( $resized_file )
) {
$resized_file = apply_filters(
'image_make_intermediate_size',
$resized_file
);
return array(
'file' => wp_basename( $resized_file ),
'width' => $info[0],
'height' => $info[1],
);
}
}
return false;
}