__( 'Instagram photos widget.', 'espania' ) ); $control_ops = array( 'width' => 400 ); parent::__construct( false, __( '» [Espania] Instagram', 'espania' ), $widget_ops, $control_ops ); } function widget( $args, $instance ) { extract($args); $title = $instance['title']; $username = $instance['username']; $limit = $instance['number']; $size = $instance['size']; $target = $instance['target']; echo $before_widget; if(!empty($title)) { echo $before_title . $title . $after_title; }; if ($username != '') { $media_array = $this->scrape_instagram($username, $limit); if ( is_wp_error($media_array) ) { echo $media_array->get_error_message(); } else { // filter for images only? if ( $instance['only_img'] ) $media_array = array_filter( $media_array, array( $this, 'images_only' ) ); ?> 'Instagram', 'username' => '', 'number' => '4', 'size' => 'thumbnail', 'target' => '_self', 'only_img' => false, ); $instance = wp_parse_args( (array) $instance, $defaults ); ?>
value="true" />
', $shards[1]); $insta_array = json_decode($insta_json[0], TRUE); if (!$insta_array) return new WP_Error('bad_json', __( 'Instagram has returned invalid data.', 'espania' )); $images = $insta_array['entry_data']['ProfilePage'][0]['user']['media']['nodes']; $instagram = array(); // var_dump($images); foreach ($images as $image) { $image['display_src'] = preg_replace( "/^http:/i", "", $image['display_src'] ); $image['thumbnail_src'] = preg_replace( "/^http:/i", "", $image['thumbnail_src'] ); $image['display_src'] = preg_replace( "/^http:/i", "", $image['display_src'] ); $instagram[] = array( 'description' => isset( $image['caption'] ) ? $image['caption'] : '', 'link' => $image['display_src'], 'comments' => $image['comments']['count'], 'likes' => $image['likes']['count'], 'thumbnail' => $image['thumbnail_src'], 'large' => $image['display_src'], 'type' => $image['__typename'] ); } $instagram = base64_encode( serialize( $instagram ) ); set_transient('instagram-media-'.sanitize_title_with_dashes($username), $instagram, apply_filters('null_instagram_cache_time', HOUR_IN_SECONDS*2)); //} $instagram = unserialize( base64_decode( $instagram ) ); return array_slice($instagram, 0, $slice); } function images_only($media_item) { if ($media_item['type'] == 'GraphImage') return true; return false; } } ?>