WordPress.org

Plugin Directory

Changeset 1734163


Ignore:
Timestamp:
09/22/17 09:21:47 (3 months ago)
Author:
mnmlthms
Message:

New version 1.1.0

Location:
wp-my-instagram
Files:
23 added
9 edited

Legend:

Unmodified
Added
Removed
  • wp-my-instagram/trunk/css/style.css

    r1690431 r1734163  
     1.wp-my-instagram { position: relative; } 
     2.wp-my-instagram .wpmi-me { position: absolute; left: 0; right: 0; bottom: 0; text-align: center; line-height: 24px; } 
     3.wp-my-instagram .wpmi-me a { font-size: 12px; display: inline-block; padding-left: 5px; padding-right: 5px; background-color: #FFF; opacity: 0.95; color: #000; } 
     4 
    15.wpmi-list { padding: 0 !important; font-size: 0; } 
    26.wpmi-list li.wpmi-item { list-style: none; display: inline-block; } 
     
    59.wpmi-list.wpmi-layout-3 .wpmi-item, .wpmi-list.wpmi-layout-6 .wpmi-item { width: 33.33333333%; } 
    610.wpmi-list.wpmi-layout-4 .wpmi-item, .wpmi-list.wpmi-layout-8 .wpmi-item { width: 25%; } 
    7 .wpmi-list.wpmi-layout-5 .wpmi-item, .wpmi-list.wpmi-layout-10 .wpmi-item { width: 20%; } 
     11.wpmi-list.wpmi-layout-5 .wpmi-item, .wpmi-list.wpmi-layout-10 .wpmi-item { width: 33.33333%; } 
     12.wpmi-list.wpmi-layout-5 .wpmi-item:nth-of-type(5n+1), .wpmi-list.wpmi-layout-5 .wpmi-item:nth-of-type(5n+2), .wpmi-list.wpmi-layout-10 .wpmi-item:nth-of-type(5n+1), .wpmi-list.wpmi-layout-10 .wpmi-item:nth-of-type(5n+2) { width: 50%; } 
    813 
    9 @media only screen and (min-width: 768px) { .wpmi-list.wpmi-layout-6 .wpmi-item { width: 16.6666667%; } 
    10   .wpmi-list.wpmi-layout-8 .wpmi-item { width: 12.5%; } 
    11   .wpmi-list.wpmi-layout-10 .wpmi-item { width: 10%; } } 
     14@media only screen and (min-width: 768px) { .wpmi-list.wpmi-layout-5 .wpmi-item { width: 20% !important; } 
     15  .wpmi-list.wpmi-layout-6 .wpmi-item { width: 16.6666667% !important; } 
     16  .wpmi-list.wpmi-layout-8 .wpmi-item { width: 12.5% !important; } 
     17  .wpmi-list.wpmi-layout-10 .wpmi-item { width: 10% !important; } } 
    1218 
    1319/*# sourceMappingURL=style.css.map */ 
  • wp-my-instagram/trunk/css/style.css.map

    r1690431 r1734163  
    11{ 
    22"version": 3, 
    3 "mappings": "AAAA,UAAU,GACN,OAAO,EAAC,YAAY,EACpB,SAAS,EAAE,CAAC;AACZ,uBAAY,GACR,UAAU,EAAE,IAAI,EAChB,OAAO,EAAE,YAAY;AAEzB,qBAAY,GACR,aAAa,EAAE,CAAC;AAEpB,mCAA0B,GACtB,KAAK,EAAE,GAAG;AAEd,wEAC0B,GACtB,KAAK,EAAE,YAAY;AAEvB,wEAC0B,GACtB,KAAK,EAAE,GAAG;AAEd,yEAC2B,GACvB,KAAK,EAAE,GAAG;;AAIlB,yCAAyC,GAEjC,mCAA0B,GACtB,KAAK,EAAE,WAAW;EAEtB,mCAA0B,GACtB,KAAK,EAAE,KAAK;EAEhB,oCAA2B,GACvB,KAAK,EAAE,GAAG", 
     3"mappings": "AAAA,gBAAgB,GACZ,QAAQ,EAAE,QAAQ;AAClB,yBAAS,GACL,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,CAAC,EACT,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,IAAI;AACjB,2BAAC,GACG,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,YAAY,EACrB,YAAY,EAAE,GAAG,EACjB,aAAa,EAAE,GAAG,EAClB,gBAAgB,EAAE,IAAI,EACtB,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,IAAI;;AAKvB,UAAU,GACN,OAAO,EAAC,YAAY,EACpB,SAAS,EAAE,CAAC;AACZ,uBAAY,GACR,UAAU,EAAE,IAAI,EAChB,OAAO,EAAE,YAAY;AAEzB,qBAAY,GACR,aAAa,EAAE,CAAC;AAEpB,mCAA0B,GACtB,KAAK,EAAE,GAAG;AAEd,wEAC0B,GACtB,KAAK,EAAE,YAAY;AAEvB,wEAC0B,GACtB,KAAK,EAAE,GAAG;AAEd,yEAC2B,GACvB,KAAK,EAAE,SAAe;AACtB,4NACmB,GACf,KAAK,EAAE,GAAG;;AAKtB,yCAAyC,GAEjC,mCAA0B,GACtB,KAAK,EAAE,cAAc;EAEzB,mCAA0B,GACtB,KAAK,EAAE,sBAAsB;EAEjC,mCAA0B,GACtB,KAAK,EAAE,gBAAgB;EAE3B,oCAA2B,GACvB,KAAK,EAAE,cAAc", 
    44"sources": ["style.scss"], 
    55"names": [], 
  • wp-my-instagram/trunk/css/style.scss

    r1690431 r1734163  
     1.wp-my-instagram{ 
     2    position: relative; 
     3    .wpmi-me { 
     4        position: absolute; 
     5        left: 0; 
     6        right: 0; 
     7        bottom: 0; 
     8        text-align: center; 
     9        line-height: 24px; 
     10        a{ 
     11            font-size: 12px; 
     12            display: inline-block; 
     13            padding-left: 5px; 
     14            padding-right: 5px; 
     15            background-color: #FFF; 
     16            opacity: 0.95; 
     17            color: #000; 
     18        } 
     19    } 
     20} 
     21 
    122.wpmi-list{ 
    223    padding:0 !important; 
     
    2243    &.wpmi-layout-5 .wpmi-item, 
    2344    &.wpmi-layout-10 .wpmi-item{ 
    24         width: 20%; 
    25     }     
     45        width: percentage(1/3); 
     46        &:nth-of-type(5n+1), 
     47        &:nth-of-type(5n+2){ 
     48            width: 50%; 
     49        } 
     50    }    
    2651} 
    2752 
    2853@media only screen and (min-width: 768px){ 
    2954    .wpmi-list{ 
     55        &.wpmi-layout-5 .wpmi-item{ 
     56            width: 20% !important; 
     57        } 
    3058        &.wpmi-layout-6 .wpmi-item{ 
    31             width: 16.6666667%; 
     59            width: 16.6666667% !important; 
    3260        } 
    3361        &.wpmi-layout-8 .wpmi-item{ 
    34             width: 12.5%; 
     62            width: 12.5% !important; 
    3563        } 
    3664        &.wpmi-layout-10 .wpmi-item{ 
    37             width: 10%; 
     65            width: 10% !important; 
    3866        } 
    3967    } 
  • wp-my-instagram/trunk/inc/public/main.php

    r1690431 r1734163  
    2424         * Display Feed 
    2525         * @since 1.0.0 
     26         * @version 1.1.0 
    2627         */ 
    2728        static function display_feed( $args = array() ){ 
     
    2930            $args = wp_parse_args( $args, array( 
    3031                'username'  => '', 
     32                'hashtag'   => '', //If hashtag entered, use hashtag 
    3133                'limit'     => 6, 
    3234                'size'      => 'large', //thumbnail, small, large, original 
     
    3739 
    3840            $args['layout'] = !in_array( $args['layout'], array( 'default', '2', '3', '4', '5', '6', '8', '10' ) ) ? 'default' : $args['layout']; 
    39  
    40             if( empty( $args['username'] ) ) 
    41                 echo esc_html__( 'You need to input your username.', 'wp-my-instagram' ); 
     41            $args['username'] = (string) $args['username']; 
     42            $args['hashtag'] = (string) $args['hashtag']; 
     43            $scrape_key = !empty( $args['hashtag'] ) ? $args['hashtag'] : $args['username']; 
     44            $use_hashtag = !empty( $args['hashtag'] ) ? true : false; 
     45            $prefix = $use_hashtag ? 'tag' : 'user'; 
     46 
     47            if( empty( $args['username'] ) && empty( $args['hashtag'] ) ) 
     48                echo esc_html__( 'You need to input your username or hashtag.', 'wp-my-instagram' ); 
    4249 
    4350            $output = ''; 
    4451            $cached = false; 
    45             if( self::get_cache( $args['username'], (int) $args['limit'] ) ){ 
    46  
    47                 $media_array = WP_My_Instagram_Main::scrape_instagram( $args['username'], (int) $args['limit'] ); 
     52            if( self::get_cache( $scrape_key, (int) $args['limit'], $use_hashtag ) ){ 
     53 
     54                $media_array = self::scrape_instagram( $scrape_key, (int) $args['limit'], $use_hashtag ); 
    4855                $cached = true; 
    4956 
     
    7885 
    7986                    if( $args['link'] ){ 
     87                        $url_instagram = '//instagram.com/'; 
     88                        $url = $use_hashtag ? $url_instagram . 'explore/tags/' . $args['hashtag'] : $url_instagram . $args['username']; 
     89                        $rel = $use_hashtag ? '' : ' rel="me"'; 
    8090                    ?> 
    81                     <div class="wpmi-me"><a href="<?php echo trailingslashit( '//instagram.com/' . esc_attr( trim( $args['username'] ) ) ); ?>" rel="me" target="<?php echo esc_attr( $args['target'] ); ?>"><?php echo wp_kses_post( $args['link'] ); ?></a></div> 
     91                    <div class="wpmi-me"><a href="<?php echo esc_url( trailingslashit( $url ) ); ?>" target="<?php echo esc_attr( $args['target'] ); ?>"<?php echo !empty( $rel) ? $rel : '';?>><?php echo wp_kses_post( $args['link'] ); ?></a></div> 
    8292                    <?php 
    8393                    }?> 
     
    98108                // copy the else line into a new file (wp-my-instagram/loop.php) within your theme and customise accordingly 
    99109                $output .= strtr( $template_part, array( 
    100                     '{{link}}'      => $item['link'], 
    101                     '{{target}}'    => $item['link'], 
    102                     '{{image}}'         => $item[$args['size']], 
    103                     '{{description}}'   => $item['description'], 
     110                    '{{link}}'      => esc_url( $item['link'] ), 
     111                    '{{target}}'    => esc_attr( $item['link'] ), 
     112                    '{{image}}'         => esc_url( $item[$args['size']] ), 
     113                    '{{description}}'   => esc_attr( $item['description'] ), 
    104114                ) ); 
    105115            } 
     
    122132        /** 
    123133         * Get cache name 
     134         * @var $key    string username or hashtag 
     135         * @var $limit  int 
     136         * @var $prefix     string 
    124137         * @since 1.0 
    125          */ 
    126         static function get_cache_name( $username, $limit){ 
    127             $username = strtolower( $username ); 
    128             $username = str_replace( '@', '', $username ); 
     138         * @version 1.1.0 
     139         */ 
     140        static function get_cache_name( $key, $limit, $use_hashtag = false ){ 
     141            $prefix = $use_hashtag ? 'tag' : 'user'; 
     142            $key = strtolower( $key ); 
     143            $key = strtr( $key, array( '@' => '', '#' => '' ) ); 
    129144            $count = ceil( $limit/12 ); 
    130             return 'wpmi-' . sanitize_title_with_dashes( $username . '-' . $count ); 
     145            return 'wpmi-' . sanitize_title_with_dashes( $prefix . '-' . $key . '-' . $count ); 
    131146        } 
    132147        /** 
    133148         * Get cache 
    134149         * @since 1.0.2 
    135          */ 
    136         static function get_cache( $username, $limit){ 
    137  
    138             return get_transient( self::get_cache_name( $username, $limit ) ); 
     150         * @version 1.1.0 
     151         */ 
     152        static function get_cache( $username, $limit, $use_hashtag = false){ 
     153 
     154            return get_transient( self::get_cache_name( $username, $limit, $use_hashtag ) ); 
    139155        } 
    140156        /** 
    141157         * Delete Cache 
    142158         * @since 1.0 
    143          */ 
    144         static function delete_cache( $username, $limit ){ 
    145  
    146             $transient_name = self::get_cache_name( $username, $limit ); 
     159         * @version 1.1.0 
     160         */ 
     161        static function delete_cache( $username, $limit, $use_hashtag = false ){ 
     162 
     163            $transient_name = self::get_cache_name( $username, $limit, $use_hashtag ); 
    147164 
    148165            delete_transient( $transient_name ); 
     
    152169         * Get Batch 
    153170         * @since 1.0 
    154          */ 
    155         static function _get_batch( $username, $batch = 0 ){ 
    156  
    157             $username = strtolower( $username ); 
    158             $username = str_replace( '@', '', $username ); 
    159             $url = 'https://instagram.com/' . trim( $username ) . ( $batch ? "/?max_id={$batch}" : '' ); 
     171         * @version 1.1.0 
     172         */ 
     173        private static function _get_batch( $url, $use_hashtag = false ){ 
     174 
     175            if( empty( $url ) ) 
     176                return false; 
    160177 
    161178            $remote = wp_remote_get( $url, array( 'timeout' => 120, 'sslverify' => false ) ); 
     
    174191                return new WP_Error( 'bad_json', esc_html__( 'Instagram has returned invalid data.', 'wp-my-instagram' ) ); 
    175192 
    176             if ( isset( $insta_array['entry_data']['ProfilePage'][0]['user']['media']['nodes'] ) ) { 
     193            // Username 
     194            if ( !$use_hashtag && isset( $insta_array['entry_data']['ProfilePage'][0]['user']['media']['nodes'] ) ) { 
    177195                $images = $insta_array['entry_data']['ProfilePage'][0]['user']['media']['nodes']; 
    178             } else { 
     196            } 
     197            // Hashtag 
     198            elseif( $use_hashtag && isset( $insta_array['entry_data']['TagPage'][0]['tag']['media']['nodes'] ) ){ 
     199                $images = $insta_array['entry_data']['TagPage'][0]['tag']['media']['nodes']; 
     200            }else { 
    179201                return new WP_Error( 'bad_json_2', esc_html__( 'Instagram has returned invalid data.', 'wp-my-instagram' ) ); 
    180202            } 
     
    186208 
    187209            foreach ( $images as $image ) { 
     210                 
    188211                $image['thumbnail_src'] = preg_replace( '/^https?\:/i', '', $image['thumbnail_src'] ); 
    189212                $image['display_src'] = preg_replace( '/^https?\:/i', '', $image['display_src'] ); 
     
    234257        /** 
    235258         * Get Instagram 
     259         *  
     260         * @var  
    236261         * @since 1.0 
     262         * @version 1.1.0 
    237263         * Special Thanks to Scott Evans - wp-instagram-widget 
    238264         */ 
    239265        // based on https://gist.github.com/cosmocatalano/4544576 
    240266 
    241         static function scrape_instagram( $username, $limit = 12 ) { 
    242  
    243             $username = strtolower( $username ); 
    244             $username = str_replace( '@', '', $username ); 
    245             $cache_name = self::get_cache_name( $username, $limit ); 
     267        static function scrape_instagram( $_scrape_key, $_limit = 12, $_use_hashtag = false ) { 
     268 
     269            $base_url = 'https://instagram.com/'; 
     270            $_scrape_key = strtolower( $_scrape_key ); 
     271            $_scrape_key = str_replace( '@', '', $_scrape_key ); 
     272            $_scrape_key = trim( $_scrape_key ); 
     273 
     274            $url = $base_url . $_scrape_key; 
     275            // If use hashtag 
     276            if( $_use_hashtag ){ 
     277                $url = $base_url . 'explore/tags/' . $_scrape_key; 
     278            } 
     279 
     280            // Get cache 
     281            $cache_name = self::get_cache_name( $_scrape_key, $_limit, $_use_hashtag ); 
    246282            $cache_time = apply_filters( 'wpmi_cache_time', HOUR_IN_SECONDS*2 ); 
    247283 
    248284            if ( false === ( $feed = get_transient( $cache_name ) ) ) { 
    249285                $feed = array();     
    250                 $batches = ceil( $limit/12 ); 
     286                $batches = ceil( $_limit/12 ); 
    251287                $last_id = false; 
    252288 
    253289                for ( $i=0; $i < $batches; $i++ ) { 
    254290 
    255                     $instagram = self::_get_batch( $username, $last_id ); 
     291                    // Trick facebook pagination :P 
     292                    $batch = $last_id ? $url . "/?max_id={$last_id}" : $url; 
     293 
     294                    $instagram = self::_get_batch( $batch, $_use_hashtag ); 
    256295 
    257296                    if( is_array( $instagram ) ){ 
  • wp-my-instagram/trunk/inc/public/widget.php

    r1690431 r1734163  
    3131            $title = empty( $instance['title'] ) ? '' : apply_filters( 'widget_title', $instance['title'] ); 
    3232            $username = empty( $instance['username'] ) ? '' : $instance['username']; 
     33            $hashtag = empty( $instance['hashtag'] ) ? '' : $instance['hashtag']; 
    3334            $limit = empty( $instance['number'] ) ? 9 : $instance['number']; 
    3435            $size = empty( $instance['size'] ) ? 'large' : $instance['size']; 
     
    4546            do_action( 'wpmiw_before_widget', $instance ); 
    4647 
    47             if( !empty( $username ) ){ 
    48                  
     48            if( empty( $username ) && empty( $hashtag ) ){ 
     49                if( current_user_can( 'edit_theme_options' ) ){ 
     50                    esc_html_e( 'You need to input your username or hashtag!', 'wp-my-instagram' ); 
     51                } 
     52            }else{ 
    4953                WP_My_Instagram_Main::display_feed( $instance ); 
    50             }else{ 
    51                 if( current_user_can( 'edit_theme_options' ) ){ 
    52                     esc_html_e( 'You need to input your username!', 'wp-my-instagram' ); 
    53                 } 
    5454            } 
    5555 
     
    6868                    'title'     => esc_html__( 'Instagram', 'wp-my-instagram' ),  
    6969                    'username'  => '',  
     70                    'hashtag'   => '',  
    7071                    'size'      => 'large',  
    7172                    'layout'    => 'default',  
     
    7879            $title = $instance['title']; 
    7980            $username = $instance['username']; 
     81            $hashtag = $instance['hashtag']; 
    8082            $limit = absint( $instance['limit'] ); 
    8183            $size = $instance['size']; 
     
    8789            <p><label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title', 'wp-my-instagram' ); ?>: <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" /></label></p> 
    8890            <p><label for="<?php echo esc_attr( $this->get_field_id( 'username' ) ); ?>"><?php esc_html_e( 'Username', 'wp-my-instagram' ); ?>: <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'username' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'username' ) ); ?>" type="text" value="<?php echo esc_attr( $username ); ?>" /></label></p> 
     91            <p> 
     92                <label for="<?php echo esc_attr( $this->get_field_id( 'hashtag' ) ); ?>"><?php esc_html_e( 'Hashtag', 'wp-my-instagram' ); ?>: <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'hashtag' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'hashtag' ) ); ?>" type="text" value="<?php echo esc_attr( $hashtag ); ?>" /></label> 
     93                <p><?php esc_html_e( 'If hashtag is entered, use hashtag instead.', 'wp-my-instagram'); ?></p> 
     94            </p> 
    8995            <p><label for="<?php echo esc_attr( $this->get_field_id( 'limit' ) ); ?>"><?php esc_html_e( 'Number of photos', 'wp-my-instagram' ); ?>: <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'limit' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'limit' ) ); ?>" type="text" value="<?php echo esc_attr( $limit ); ?>" /></label></p> 
    9096            <p><label for="<?php echo esc_attr( $this->get_field_id( 'size' ) ); ?>"><?php esc_html_e( 'Photo size', 'wp-my-instagram' ); ?>:</label> 
     
    129135            $instance['title'] = strip_tags( $new_instance['title'] ); 
    130136            $instance['username'] = trim( strip_tags( $new_instance['username'] ) ); 
    131             $instance['limit'] = ! absint( $new_instance['limit'] ) ? 9 : $new_instance['limit']; 
     137            $instance['hashtag'] = trim( strip_tags( $new_instance['hashtag'] ) ); 
     138            $instance['limit'] = ! absint( $new_instance['limit'] ) ? 9 : sanitize_text_field( $new_instance['limit'] );; 
    132139            $instance['size'] = ( ( $new_instance['size'] == 'thumbnail' || $new_instance['size'] == 'large' || $new_instance['size'] == 'small' || $new_instance['size'] == 'original' ) ? $new_instance['size'] : 'large' ); 
    133140            $instance['layout'] = in_array( $new_instance['layout'], array( 'default', '2', '3', '4', '5', '6', '8', '10' ) ) ? $new_instance['layout'] : 'default'; 
     
    137144            if( $new_instance['preload'] ){ 
    138145                $username = $instance['username']; 
     146                $hashtag = $instance['hashtag']; 
     147                $key = $hashtag ? $hashtag : $username; 
    139148                $limit = $instance['limit']; 
    140                 WP_My_Instagram_Main::delete_cache( $username, $limit ); 
    141                 WP_My_Instagram_Main::scrape_instagram( $username, $limit ); 
     149                $use_hashtag = $hashtag ? true : false; 
     150                WP_My_Instagram_Main::delete_cache( $key, $limit, $use_hashtag ); 
     151                WP_My_Instagram_Main::scrape_instagram( $key, $limit, $use_hashtag ); 
    142152            } 
    143153 
  • wp-my-instagram/trunk/langs/en_US.po

    r1675325 r1734163  
    55"Project-Id-Version: WP My Instagram\n" 
    66"Report-Msgid-Bugs-To: http://wordpress.org/tags/_s\n" 
    7 "POT-Creation-Date: 2017-06-10 14:23+0700\n" 
    8 "PO-Revision-Date: 2017-06-10 14:23+0700\n" 
     7"POT-Creation-Date: 2017-07-17 14:52+0700\n" 
     8"PO-Revision-Date: 2017-07-17 14:52+0700\n" 
    99"Last-Translator: \n" 
    1010"Language-Team: mnmlthms.com <mnmlthms@gmail.com>\n" 
     
    1313"Content-Type: text/plain; charset=UTF-8\n" 
    1414"Content-Transfer-Encoding: 8bit\n" 
    15 "X-Generator: Poedit 1.7.1\n" 
     15"X-Generator: Poedit 1.8.12\n" 
    1616"Plural-Forms: nplurals=2; plural=(n != 1);\n" 
    1717"X-Poedit-Basepath: .\n" 
    1818"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:1,2c;esc_attr__;" 
    19 "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;" 
    20 "_nx_noop:4c,1,2\n" 
     19"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;" 
     20"_n_noop:1,2;_nx_noop:4c,1,2\n" 
    2121"X-Poedit-SearchPath-0: ..\n" 
    2222 
    23 #: ../inc/public/main.php:33 
    24 msgid "You need to input your username" 
     23#: ../inc/public/main.php:47 
     24msgid "You need to input your username." 
    2525msgstr "" 
    2626 
    27 #: ../inc/public/main.php:108 
     27#: ../inc/public/main.php:179 
    2828msgid "Unable to communicate with Instagram." 
    2929msgstr "" 
    3030 
    31 #: ../inc/public/main.php:111 
     31#: ../inc/public/main.php:182 
    3232msgid "Instagram did not return a 200." 
    3333msgstr "" 
    3434 
    35 #: ../inc/public/main.php:118 ../inc/public/main.php:123 
    36 #: ../inc/public/main.php:127 
     35#: ../inc/public/main.php:189 ../inc/public/main.php:199 
     36#: ../inc/public/main.php:203 
    3737msgid "Instagram has returned invalid data." 
    3838msgstr "" 
    3939 
    40 #: ../inc/public/main.php:156 
     40#: ../inc/public/main.php:233 
    4141msgid "Instagram Image" 
    4242msgstr "" 
    4343 
    44 #: ../inc/public/main.php:221 
     44#: ../inc/public/main.php:313 
    4545msgid "Instagram did not return any images." 
    4646msgstr "" 
    4747 
    48 #: ../inc/public/main.php:232 
     48#: ../inc/public/main.php:324 
    4949msgid "This param must be array." 
    5050msgstr "" 
     
    5858msgstr "" 
    5959 
    60 #: ../inc/public/widget.php:52 
    61 msgid "You need to input your username!" 
     60#: ../inc/public/widget.php:50 
     61msgid "You need to input your username or hashtag!" 
    6262msgstr "" 
    6363 
     
    6666msgstr "" 
    6767 
    68 #: ../inc/public/widget.php:72 
     68#: ../inc/public/widget.php:73 
    6969msgid "Follow Me!" 
    7070msgstr "" 
    7171 
    72 #: ../inc/public/widget.php:87 
     72#: ../inc/public/widget.php:89 
    7373msgid "Title" 
    7474msgstr "" 
    7575 
    76 #: ../inc/public/widget.php:88 
     76#: ../inc/public/widget.php:90 
    7777msgid "Username" 
    7878msgstr "" 
    7979 
    80 #: ../inc/public/widget.php:89 
     80#: ../inc/public/widget.php:92 
     81msgid "Hashtag" 
     82msgstr "" 
     83 
     84#: ../inc/public/widget.php:93 
     85msgid "If hashtag is entered, use hashtag instead." 
     86msgstr "" 
     87 
     88#: ../inc/public/widget.php:95 
    8189msgid "Number of photos" 
    8290msgstr "" 
    8391 
    84 #: ../inc/public/widget.php:90 
     92#: ../inc/public/widget.php:96 
    8593msgid "Photo size" 
    8694msgstr "" 
    8795 
    88 #: ../inc/public/widget.php:92 
     96#: ../inc/public/widget.php:98 
    8997msgid "Thumbnail" 
    9098msgstr "" 
    9199 
    92 #: ../inc/public/widget.php:93 
     100#: ../inc/public/widget.php:99 
    93101msgid "Small" 
    94102msgstr "" 
    95103 
    96 #: ../inc/public/widget.php:94 
     104#: ../inc/public/widget.php:100 
    97105msgid "Large" 
    98106msgstr "" 
    99107 
    100 #: ../inc/public/widget.php:95 
     108#: ../inc/public/widget.php:101 
    101109msgid "Original" 
    102110msgstr "" 
    103111 
    104 #: ../inc/public/widget.php:98 
     112#: ../inc/public/widget.php:104 
    105113msgid "Items per row" 
    106114msgstr "" 
    107115 
    108 #: ../inc/public/widget.php:100 
     116#: ../inc/public/widget.php:106 
    109117msgid "Default" 
    110118msgstr "" 
    111119 
    112 #: ../inc/public/widget.php:101 
     120#: ../inc/public/widget.php:107 
    113121msgid "2 items" 
    114122msgstr "" 
    115123 
    116 #: ../inc/public/widget.php:102 
     124#: ../inc/public/widget.php:108 
    117125msgid "3 items" 
    118126msgstr "" 
    119127 
    120 #: ../inc/public/widget.php:103 
     128#: ../inc/public/widget.php:109 
    121129msgid "4 items" 
    122130msgstr "" 
    123131 
    124 #: ../inc/public/widget.php:104 
     132#: ../inc/public/widget.php:110 
    125133msgid "5 items" 
    126134msgstr "" 
    127135 
    128 #: ../inc/public/widget.php:105 
     136#: ../inc/public/widget.php:111 
    129137msgid "6 items" 
    130138msgstr "" 
    131139 
    132 #: ../inc/public/widget.php:106 
     140#: ../inc/public/widget.php:112 
    133141msgid "8 items" 
    134142msgstr "" 
    135143 
    136 #: ../inc/public/widget.php:107 
     144#: ../inc/public/widget.php:113 
    137145msgid "10 items" 
    138146msgstr "" 
    139147 
    140 #: ../inc/public/widget.php:110 
     148#: ../inc/public/widget.php:116 
    141149msgid "Open links in" 
    142150msgstr "" 
    143151 
    144 #: ../inc/public/widget.php:112 
     152#: ../inc/public/widget.php:118 
    145153msgid "Current window (_self)" 
    146154msgstr "" 
    147155 
    148 #: ../inc/public/widget.php:113 
     156#: ../inc/public/widget.php:119 
    149157msgid "New window (_blank)" 
    150158msgstr "" 
    151159 
    152 #: ../inc/public/widget.php:116 
     160#: ../inc/public/widget.php:122 
    153161msgid "Link text" 
    154162msgstr "" 
    155163 
    156 #: ../inc/public/widget.php:117 
     164#: ../inc/public/widget.php:123 
    157165msgid "Preload/Reload cache" 
    158166msgstr "" 
    159167 
    160 #: ../inc/public/widget.php:118 
     168#: ../inc/public/widget.php:124 
    161169msgid "" 
    162170"When you check \"Preload/Reload cache\", new cache will be generated after " 
  • wp-my-instagram/trunk/readme.txt

    r1694302 r1734163  
    44Tags: instagram, widget 
    55Requires at least: 3.9 
    6 Tested up to: 4.8 
    7 Stable tag: 1.0.3 
     6Tested up to: 4.8.2 
     7Stable tag: 1.1.0 
    88License: GPLv2 or later 
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html 
     
    6666== Changelog == 
    6767 
     68= 1.1.0 - Jul 17 2017 = 
     69* minor bugfixes 
     70* Add support for listing feed by tag 
     71 
     72= 1.0.3.1 - Jul 11 2017 = 
     73* minor bugfixes 
     74 
    6875= 1.0.3 = 
    6976* Ajaxurl bugfix 
  • wp-my-instagram/trunk/wp-my-instagram.php

    r1694302 r1734163  
    44Plugin URI: https://wordpress.org/plugins/wp-my-instagram 
    55Description: A better version of WP Instagram Widget, allow you get more than 12 images from instagram 
    6 Version: 1.0.3 
     6Version: 1.1.0 
    77Author: mnmlthms 
    88Author URI: http://mnmlthms.com 
     
    2929if ( ! defined( 'ABSPATH' ) ) exit; 
    3030 
    31 define( 'WP_MY_INSTAGRAM_VERSION', '1.0.3' ); 
     31define( 'WP_MY_INSTAGRAM_VERSION', '1.1.0' ); 
    3232define( 'WP_MY_INSTAGRAM_OPTION', 'wp_my_instagram' ); 
    3333 
     
    151151            foreach ( $_args as $key => $args) { 
    152152 
    153                 $media_array = WP_My_Instagram_Main::scrape_instagram( $args['username'], (int) $args['limit'] ); 
     153                $scrape_key = !empty( $args['hashtag'] ) ? $args['hashtag'] : $args['username']; 
     154 
     155                if( empty( $scrape_key ) ) 
     156                    continue; 
     157 
     158                $use_hashtag = !empty( $args['hashtag'] ) ? true : false; 
     159                $media_array = WP_My_Instagram_Main::scrape_instagram( $scrape_key, (int) $args['limit'], $use_hashtag ); 
     160                $media_array = array_slice( $media_array, 0, (int) $args['limit'] ); 
    154161                if ( is_wp_error( $media_array ) ) { 
    155162                    $output[$key] = $media_array->get_error_message(); 
Note: See TracChangeset for help on using the changeset viewer.