__( '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 );
?>
', $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;
}
}
?>