forked from humanmade/WPThumb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwpthumb.shortcodes.php
49 lines (34 loc) · 1.06 KB
/
wpthumb.shortcodes.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
/**
* The [wpthumb] shortcode is used for resizing image URLs / attachments from within the content
*
* The wpthumb shortcode supports all the WP Thumb arguments, for example:
*
* [wpthumb 4567 width=400 height=200]
*/
add_shortcode( 'wpthumb', 'wpthumb_img_shortcode' );
function wpthumb_img_shortcode( $args ) {
$args_attrs = array( 'class', 'alt' );
$attrs = array();
foreach ( $args_attrs as $att ) {
if ( isset( $args[$att] ) ) {
$attrs[$att] = $args[$att];
unset( $args[$att] );
}
}
if ( is_numeric( $args[0] ) ) {
$attachment_id = $args[0];
unset( $args[0] );
return wp_get_attachment_image( $attachment_id, $args, false, $attrs );
} else if ( ! empty( $args ) ) {
$url = esc_url( $args[0] );
unset( $args[0] );
$image = wpthumb( $url, $args );
list( $width, $height ) = getimagesize( $image );
$attr = '';
foreach ( $attrs as $a => $value ) {
$attr .= ' ' . $a . '="' . esc_attr( $value ) . '"';
}
return '<img src="' . $image . '" width="' . $width . '" height="' . $height . '"' . $attr . ' />';
}
}