Home › Forums › WoodMart support forum › IG image tool is broke
IG image tool is broke
- This topic has 4 replies, 3 voices, and was last updated 6 years, 11 months ago by Artem Temos.
Viewing 5 posts - 1 through 5 (of 5 total)
-
AuthorPosts
-
January 12, 2018 at 3:00 am #33059
bboyfanParticipantI USE WOODMART IINSTAGRAM TOOL to showing IG image. but it is not showing all photo some are showing broke icon.
January 12, 2018 at 8:00 am #33103
koystrubvsParticipantI have the same problem
January 12, 2018 at 8:12 am #33104
Artem TemosKeymasterHi,
Try to add the following PHP code snippet to the child theme functions.php file to fix this
function woodmart_scrape_instagram($username, $slice = 9) { $username = strtolower( $username ); $by_hashtag = ( substr( $username, 0, 1) == '#' ); if ( false === ( $instagram = get_transient( 'instagram-media-new-2-'.sanitize_title_with_dashes( $username ) ) ) ) { $request_param = ( $by_hashtag ) ? 'explore/tags/' . substr( $username, 1) : trim( $username ); $remote = wp_remote_get( 'https://instagram.com/'. $request_param ); if ( is_wp_error( $remote ) ) return new WP_Error( 'site_down', esc_html__( 'Unable to communicate with Instagram.', 'woodmart' ) ); if ( 200 != wp_remote_retrieve_response_code( $remote ) ) return new WP_Error( 'invalid_response', esc_html__( 'Instagram did not return a 200.', 'woodmart' ) ); $shards = explode( 'window._sharedData = ', $remote['body'] ); $insta_json = explode( ';</script>', $shards[1] ); $insta_array = json_decode( $insta_json[0], TRUE ); if ( !$insta_array ) return new WP_Error( 'bad_json', esc_html__( 'Instagram has returned invalid data.', 'woodmart' ) ); // old style if ( isset( $insta_array['entry_data']['UserProfile'][0]['userMedia'] ) ) { $images = $insta_array['entry_data']['UserProfile'][0]['userMedia']; $type = 'old'; // old_2 style } elseif( $by_hashtag && isset( $insta_array['entry_data']['TagPage'][0]['tag']['media']['nodes'] ) ) { $images = $insta_array['entry_data']['TagPage'][0]['tag']['media']['nodes']; $type = 'old_2'; }else if ( isset( $insta_array['entry_data']['ProfilePage'][0]['user']['media']['nodes'] ) ) { $images = $insta_array['entry_data']['ProfilePage'][0]['user']['media']['nodes']; $type = 'old_2'; // new style } elseif( $by_hashtag && isset( $insta_array['entry_data']['TagPage'][0]['graphql']['hashtag']['edge_hashtag_to_media']['edges'] ) ) { $images = $insta_array['entry_data']['TagPage'][0]['graphql']['hashtag']['edge_hashtag_to_media']['edges']; $type = 'new'; } else { return new WP_Error( 'bad_json_2', esc_html__( 'Instagram has returned invalid data.', 'woodmart' ) ); } if ( !is_array( $images ) ) return new WP_Error( 'bad_array', esc_html__( 'Instagram has returned invalid data.', 'woodmart' ) ); $instagram = array(); switch ( $type ) { case 'old': foreach ( $images as $image ) { if ( $image['user']['username'] == $username ) { $image['link'] = $image['link']; $image['images']['thumbnail'] = preg_replace( "/^http:/i", "", $image['images']['thumbnail'] ); $image['images']['standard_resolution'] = preg_replace( "/^http:/i", "", $image['images']['standard_resolution'] ); $image['images']['low_resolution'] = preg_replace( "/^http:/i", "", $image['images']['low_resolution'] ); $instagram[] = array( 'description' => $image['caption']['text'], 'link' => $image['link'], 'time' => $image['created_time'], 'comments' => $image['comments']['count'], 'likes' => $image['likes']['count'], 'thumbnail' => $image['images']['thumbnail'], 'large' => $image['images']['standard_resolution'], 'small' => $image['images']['low_resolution'], 'type' => $image['type'] ); } } break; case 'old_2': foreach ( $images as $image ) { $image['thumbnail_src'] = preg_replace( "/^https:/i", "", $image['thumbnail_src'] ); $image['thumbnail'] = preg_replace( "/^https:/i", "", $image['thumbnail_resources'][0]['src'] ); $image['medium'] = preg_replace( "/^https:/i", "", $image['thumbnail_resources'][2]['src'] ); $image['large'] = $image['thumbnail_src']; $image['display_src'] = preg_replace( "/^https:/i", "", $image['display_src'] ); if ( $image['is_video'] == true ) { $type = 'video'; } else { $type = 'image'; } $caption = esc_html__( 'Instagram Image', 'woodmart' ); if ( ! empty( $image['caption'] ) ) { $caption = $image['caption']; } $instagram[] = array( 'description' => $caption, 'link' => '//instagram.com/p/' . $image['code'], 'time' => $image['date'], 'comments' => $image['comments']['count'], 'likes' => $image['likes']['count'], 'thumbnail' => $image['thumbnail'], 'medium' => $image['medium'], 'large' => $image['large'], 'original' => $image['display_src'], 'type' => $type ); } break; default: foreach ( $images as $image ) { $image = $image['node']; $caption = esc_html__( 'Instagram Image', 'woodmart' ); if ( ! empty( $image['edge_media_to_caption']['edges'][0]['node']['text'] ) ) $caption = $image['edge_media_to_caption']['edges'][0]['node']['text']; $image['thumbnail_src'] = preg_replace( "/^https:/i", "", $image['thumbnail_src'] ); $image['thumbnail'] = preg_replace( "/^https:/i", "", $image['thumbnail_resources'][0]['src'] ); $image['medium'] = preg_replace( "/^https:/i", "", $image['thumbnail_resources'][2]['src'] ); $image['large'] = $image['thumbnail_src']; $type = ( $image['is_video'] ) ? 'video' : 'image'; $instagram[] = array( 'description' => $caption, 'link' => '//instagram.com/p/' . $image['shortcode'], 'comments' => $image['edge_media_to_comment']['count'], 'likes' => $image['edge_liked_by']['count'], 'thumbnail' => $image['thumbnail'], 'medium' => $image['medium'], 'large' => $image['large'], 'type' => $type ); } break; } // do not set an empty transient - should help catch private or empty accounts if ( ! empty( $instagram ) ) { $instagram = woodmart_compress( maybe_serialize( $instagram ) ); set_transient( 'instagram-media-new-2-'.sanitize_title_with_dashes( $username ), $instagram, apply_filters( 'null_instagram_cache_time', HOUR_IN_SECONDS*2 ) ); } } if ( ! empty( $instagram ) ) { $instagram = maybe_unserialize( woodmart_decompress( $instagram ) ); return array_slice( $instagram, 0, $slice ); } else { return new WP_Error( 'no_images', esc_html__( 'Instagram did not return any images.', 'woodmart' ) ); } }
Regards
January 12, 2018 at 11:16 am #33147
koystrubvsParticipantits work
January 12, 2018 at 12:37 pm #33158
Artem TemosKeymasterGreat, we will fix it in our next update.
-
AuthorPosts
Viewing 5 posts - 1 through 5 (of 5 total)
- You must be logged in to create new topics. Login / Register