在wordpress中将媒体的图像尺寸添加到url

时间:2012-12-11 00:17:03

标签: wordpress parameters upload image

当我在wordpress上传图像时,知道它的尺寸。让我们说这个图像叫做image.jpg。我现在想要wordpress将图像url重命名为image-w-180-h-200.jpg(例如,图像的宽度为180像素,高度为200像素)。无论如何,我可以将这些细节附加到网址,以便我可以直接“检索”这些参数吗? (我的目标是最终通过javascript获取img的宽度和高度,但这样我就不必预先加载img来获取它的尺寸,wordpress已经为我完成了工作)

干杯!

2 个答案:

答案 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;
}