| @@ 57-99 (lines=43) @@ | ||
| 54 | ||
| 55 | ob_start(); // The slideshow shortcode handler calls wp_print_scripts and wp_print_styles... not too happy about that. |
|
| 56 | ||
| 57 | foreach ( $slideshow_matches as $slideshow_match ) { |
|
| 58 | $slideshow = do_shortcode_tag( $slideshow_match ); |
|
| 59 | $pos = stripos( $slideshow, 'jetpack-slideshow' ); |
|
| 60 | ||
| 61 | // must be something wrong - or we changed the output format in which case none of the following will work. |
|
| 62 | if ( false === $pos ) { |
|
| 63 | continue; |
|
| 64 | } |
|
| 65 | ||
| 66 | $start = strpos( $slideshow, '[', $pos ); |
|
| 67 | $end = strpos( $slideshow, ']', $start ); |
|
| 68 | $post_images = json_decode( wp_specialchars_decode( str_replace( "'", '"', substr( $slideshow, $start, $end - $start + 1 ) ), ENT_QUOTES ) ); // parse via JSON |
|
| 69 | // If the JSON didn't decode don't try and act on it. |
|
| 70 | if ( is_array( $post_images ) ) { |
|
| 71 | foreach ( $post_images as $post_image ) { |
|
| 72 | $post_image_id = absint( $post_image->id ); |
|
| 73 | if ( ! $post_image_id ) { |
|
| 74 | continue; |
|
| 75 | } |
|
| 76 | ||
| 77 | $meta = wp_get_attachment_metadata( $post_image_id ); |
|
| 78 | ||
| 79 | // Must be larger than 200x200 (or user-specified). |
|
| 80 | if ( ! isset( $meta['width'] ) || $meta['width'] < $width ) { |
|
| 81 | continue; |
|
| 82 | } |
|
| 83 | if ( ! isset( $meta['height'] ) || $meta['height'] < $height ) { |
|
| 84 | continue; |
|
| 85 | } |
|
| 86 | ||
| 87 | $url = wp_get_attachment_url( $post_image_id ); |
|
| 88 | ||
| 89 | $images[] = array( |
|
| 90 | 'type' => 'image', |
|
| 91 | 'from' => 'slideshow', |
|
| 92 | 'src' => $url, |
|
| 93 | 'src_width' => $meta['width'], |
|
| 94 | 'src_height' => $meta['height'], |
|
| 95 | 'href' => $permalink, |
|
| 96 | ); |
|
| 97 | } |
|
| 98 | } |
|
| 99 | } |
|
| 100 | ob_end_clean(); |
|
| 101 | ||
| 102 | $GLOBALS['shortcode_tags'] = $old_shortcodes; |
|
| @@ 53-90 (lines=38) @@ | ||
| 50 | ||
| 51 | ob_start(); // The slideshow shortcode handler calls wp_print_scripts and wp_print_styles... not too happy about that |
|
| 52 | ||
| 53 | foreach ( $slideshow_matches as $slideshow_match ) { |
|
| 54 | $slideshow = do_shortcode_tag( $slideshow_match ); |
|
| 55 | if ( false === $pos = stripos( $slideshow, 'jetpack-slideshow' ) ) { // must be something wrong - or we changed the output format in which case none of the following will work |
|
| 56 | continue; |
|
| 57 | } |
|
| 58 | $start = strpos( $slideshow, '[', $pos ); |
|
| 59 | $end = strpos( $slideshow, ']', $start ); |
|
| 60 | $post_images = json_decode( wp_specialchars_decode( str_replace( "'", '"', substr( $slideshow, $start, $end - $start + 1 ) ), ENT_QUOTES ) ); // parse via JSON |
|
| 61 | // If the JSON didn't decode don't try and act on it. |
|
| 62 | if ( is_array( $post_images ) ) { |
|
| 63 | foreach ( $post_images as $post_image ) { |
|
| 64 | if ( ! $post_image_id = absint( $post_image->id ) ) { |
|
| 65 | continue; |
|
| 66 | } |
|
| 67 | ||
| 68 | $meta = wp_get_attachment_metadata( $post_image_id ); |
|
| 69 | ||
| 70 | // Must be larger than 200x200 (or user-specified) |
|
| 71 | if ( ! isset( $meta['width'] ) || $meta['width'] < $width ) { |
|
| 72 | continue; |
|
| 73 | } |
|
| 74 | if ( ! isset( $meta['height'] ) || $meta['height'] < $height ) { |
|
| 75 | continue; |
|
| 76 | } |
|
| 77 | ||
| 78 | $url = wp_get_attachment_url( $post_image_id ); |
|
| 79 | ||
| 80 | $images[] = array( |
|
| 81 | 'type' => 'image', |
|
| 82 | 'from' => 'slideshow', |
|
| 83 | 'src' => $url, |
|
| 84 | 'src_width' => $meta['width'], |
|
| 85 | 'src_height' => $meta['height'], |
|
| 86 | 'href' => $permalink, |
|
| 87 | ); |
|
| 88 | } |
|
| 89 | } |
|
| 90 | } |
|
| 91 | ob_end_clean(); |
|
| 92 | ||
| 93 | // Operator: Main screen turn on |
|