Plugin Directory

Changeset 3319558


Ignore:
Timestamp:
06/29/2025 08:07:51 PM (9 months ago)
Author:
pattihis
Message:

Version 1.4.2

Location:
simple-photo-feed
Files:
34 added
13 edited

Legend:

Unmodified
Added
Removed
  • simple-photo-feed/trunk/README.txt

    r3241539 r3319558  
    44Tags: photo gallery, instagram, feed, social, embed
    55Requires at least: 5.3.0
    6 Tested up to: 6.7.2
     6Tested up to: 6.8
    77Requires PHP: 7.2
    8 Stable tag: 1.4.1
     8Stable tag: 1.4.2
    99License: GPLv2 or later
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    2828
    2929* Increase Social Engagement – Increase engagement between you and your Instagram followers. Increase your number of followers by displaying your Instagram content directly on your site.
    30 * Save Time – Dont have time to update your photos on your site? Save time and increase efficiency by only posting your photos to Instagram and automatically displaying them on your website
     30* Save Time – Don't have time to update your photos on your site? Save time and increase efficiency by only posting your photos to Instagram and automatically displaying them on your website
    3131* Keep Your Site Looking Fresh – Automatically push your new Instagram content straight to your site to keep it looking fresh and keeping your audience engaged.
    3232* Super simple to set up – Once installed, you can be displaying your Instagram photos within 30 seconds! No coding required, no complex steps or Instagram Developer account needed.
     
    6565Unfortunately, not anymore. Meta has decided to deprecate the Instagram Basic API and [turn it off on December 4th, 2024](https://developers.facebook.com/blog/post/2024/09/04/update-on-instagram-basic-display-api/). That was the API that regular, personal accounts could use to have access to their media posts. The only solution to embed your instagram images in your WordPress site now is to use [their Business APIs](https://developers.facebook.com/docs/instagram-platform). That means you must change your account to [a Creator or Business type](https://help.instagram.com/502981923235522#how-to-switch-your-creator-account-to-a-business-account-on-instagram). This is a very easy process and you can [always switch back](https://help.instagram.com/1717693135113805/).
    6666
    67 = My Instagram feed isnt displaying. Why not!? =
     67= My Instagram feed isn't displaying. Why not!? =
    6868
    6969There are a few common reasons for this:
     
    7474* You have a Personal account. Please switch to Creator or Business account.
    7575
    76 If youre still having an issue displaying your feed then please open a ticket in the [Support forum](https://wordpress.org/support/plugin/simple-photo-feed) with a link to the page where you're trying to display the Instagram feed and, if possible, a link to your Instagram account.
     76If you're still having an issue displaying your feed then please open a ticket in the [Support forum](https://wordpress.org/support/plugin/simple-photo-feed) with a link to the page where you're trying to display the Instagram feed and, if possible, a link to your Instagram account.
    7777
    7878= Does "Simple Photo Feed" require manual coding or file editing? =
     
    9494
    9595== Changelog ==
     96
     97= 1.4.2 =
     98* Ensure compatibility with WP 6.8
     99* Improved code maintainability and security
     100* Ensured full WordPress coding standards compliance (PHPCS)
    96101
    97102= 1.4.1 =
  • simple-photo-feed/trunk/admin/class-simple-photo-feed-admin.php

    r3241539 r3319558  
    11<?php
    22/**
    3  * Class Simple_Photo_Feed_Admin
     3 * The admin-specific functionality of the plugin.
    44 *
    55 * @link       https://gp-web.dev/
     
    77 *
    88 * @package    Simple_Photo_Feed
    9  * @subpackage Simple_Photo_Feed/includes
     9 * @subpackage Simple_Photo_Feed/admin
    1010 */
     11
     12if ( ! defined( 'ABSPATH' ) ) {
     13    exit; // Exit if accessed directly.
     14}
    1115
    1216/**
     
    197201    public function spf_disconnect_user() {
    198202        $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
    199         if ( ! current_user_can('edit_posts') || ! wp_verify_nonce( $nonce, 'simple-photo-feed-nonce' ) ) {
     203        if ( ! current_user_can( 'edit_posts' ) || ! wp_verify_nonce( $nonce, 'simple-photo-feed-nonce' ) ) {
    200204            wp_send_json_error( esc_html__( 'Unauthorized!', 'simple-photo-feed' ), 403 );
    201205            return;
     
    226230    public function spf_clear_feed_cache() {
    227231        $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
    228         if ( ! current_user_can('edit_posts') || ! wp_verify_nonce( $nonce, 'simple-photo-feed-nonce' ) ) {
     232        if ( ! current_user_can( 'edit_posts' ) || ! wp_verify_nonce( $nonce, 'simple-photo-feed-nonce' ) ) {
    229233            wp_send_json_error( esc_html__( 'Unauthorized!', 'simple-photo-feed' ), 403 );
    230234            return;
  • simple-photo-feed/trunk/admin/css/simple-photo-feed-admin.css

    r3069975 r3319558  
    11.spf_main_wrap {
    2   display: flex;
    3   flex-direction: row;
    4   justify-content: space-between;
    5   flex-wrap: wrap;
    6   max-width: 1080px;
     2    display: flex;
     3    flex-direction: row;
     4    justify-content: space-between;
     5    flex-wrap: wrap;
     6    max-width: 1080px;
    77}
    88
    99.spf_main_left {
    10   background: #ffffff;
    11   border-radius: 10px;
    12   padding: 0 2%;
    13   flex-basis: 54%;
     10    background: #ffffff;
     11    border-radius: 10px;
     12    padding: 0 2%;
     13    flex-basis: 54%;
    1414}
    1515
    1616.spf_main_right {
    17   background: #ffffff;
    18   border-radius: 10px;
    19   padding: 20px 2%;
    20   flex-basis: 36%;
     17    background: #ffffff;
     18    border-radius: 10px;
     19    padding: 20px 2%;
     20    flex-basis: 36%;
    2121}
    2222
    2323.spf_main_right pre {
    24   background: #f1f2f3;
    25   padding: 0.5rem;
     24    background: #f1f2f3;
     25    padding: 0.5rem;
    2626}
    2727
    2828.spf_main_left input[type="text"] {
    29   min-width: 300px;
    30   width: 100%;
    31   display: block;
     29    min-width: 300px;
     30    width: 100%;
     31    display: block;
    3232}
    3333
    3434.spf_main_left .form-table th {
    35   width: 120px;
     35    width: 120px;
    3636}
    3737
    3838.spf_main_bottom {
    39   flex-grow: 1;
    40   text-align: right;
     39    flex-grow: 1;
     40    text-align: right;
    4141}
    4242
    4343a.spf_profile_link.button-primary {
    44   display: inline-flex;
    45   align-items: center;
    46   justify-content: center;
     44    display: inline-flex;
     45    align-items: center;
     46    justify-content: center;
    4747}
    4848
    4949a.spf_profile_link.button-primary .dashicons {
    50   font-size: 16px;
    51   margin-right: 6px;
    52   width: 16px;
    53   height: 16px;
    54   display: block;
     50    font-size: 16px;
     51    margin-right: 6px;
     52    width: 16px;
     53    height: 16px;
     54    display: block;
    5555}
    5656
    5757table.spf_profile {
    58   margin: 0.5rem 0;
    59   width: 100%;
    60   border: 1px solid #ddd;
    61   padding: 0.5rem;
    62   border-radius: 0.25rem;
     58    margin: 0.5rem 0;
     59    width: 100%;
     60    border: 1px solid #ddd;
     61    padding: 0.5rem;
     62    border-radius: 0.25rem;
    6363}
    6464
    6565table.spf_profile th {
    66   color: #5851db;
    67   padding: 0;
     66    color: #5851db;
     67    padding: 0;
    6868}
    6969
    7070table.spf_profile td {
    71   padding: 0;
    72   color: #833ab4;
     71    padding: 0;
     72    color: #833ab4;
    7373}
    7474
    7575.spf_profile_row.hidden {
    76   display: none;
     76    display: none;
    7777}
    7878
    7979.spf-dual-ring.hidden {
    80   display: none;
     80    display: none;
    8181}
    8282
    8383.spf-dual-ring {
    84   display: inline-block;
    85   width: 90px;
    86   height: 90px;
     84    display: inline-block;
     85    width: 90px;
     86    height: 90px;
    8787}
    8888
    8989.spf-dual-ring:after {
    90   content: " ";
    91   display: block;
    92   width: 64px;
    93   height: 64px;
    94   margin: 16px;
    95   border-radius: 50%;
    96   border: 6px solid #5851db;
    97   border-color: #833ab4 transparent #5851db transparent;
    98   animation: spf-dual-ring 1.2s linear infinite;
     90    content: " ";
     91    display: block;
     92    width: 64px;
     93    height: 64px;
     94    margin: 16px;
     95    border-radius: 50%;
     96    border: 6px solid #5851db;
     97    border-color: #833ab4 transparent #5851db transparent;
     98    animation: spf-dual-ring 1.2s linear infinite;
    9999}
    100100
    101101.spf-dual-ring#spf-loader-small {
    102   width: 50px;
    103   height: 50px;
     102    width: 50px;
     103    height: 50px;
    104104}
    105105
    106106.spf-dual-ring#spf-loader-small:after {
    107   width: 32px;
    108   height: 32px;
    109   margin: 8px;
     107    width: 32px;
     108    height: 32px;
     109    margin: 8px;
    110110}
    111111
    112112.spf_main_left .notice-error,
    113113.spf_main_left .notice-warning {
    114   margin: 0;
    115   padding: 0.6rem;
     114    margin: 0;
     115    padding: 0.6rem;
    116116}
    117117
    118118@keyframes spf-dual-ring {
    119   0% {
     119    0% {
    120120    transform: rotate(0deg);
    121   }
     121    }
    122122
    123   100% {
     123    100% {
    124124    transform: rotate(360deg);
    125   }
     125    }
    126126}
    127127
    128128.spf_main_wrap .button-primary {
    129   background: #5851db;
    130   border-color: #5851db;
    131   border-radius: 0.25rem;
     129    background: #5851db;
     130    border-color: #5851db;
     131    border-radius: 0.25rem;
    132132}
    133133
    134134.spf_main_wrap .button-secondary {
    135   color: #5851db;
    136   border-color: #5851db;
    137   border-radius: 0.25rem;
     135    color: #5851db;
     136    border-color: #5851db;
     137    border-radius: 0.25rem;
    138138}
    139139
    140140.spf_main_wrap .button-primary:hover,
    141141.spf_main_wrap .button-secondary:hover {
    142   background: #833ab4;
    143   border-color: #833ab4;
    144   color: #fff;
     142    background: #833ab4;
     143    border-color: #833ab4;
     144    color: #fff;
    145145}
    146146
    147147.spf_main_title,
    148148.spf_main_right h2 {
    149   color: #2821ab;
     149    color: #2821ab;
    150150}
    151151
    152152.spf_main_right h3 {
    153   color: #5851db;
     153    color: #5851db;
    154154}
    155155
    156156.spf_main_title .dashicons:before,
    157157.spf_main_right .dashicons:before {
    158   background: -moz-linear-gradient(top, #833ab4 0%, #5851db 100%);
    159   background: -webkit-linear-gradient(top, #833ab4 0%, #5851db 100%);
    160   background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%);
    161   -webkit-background-clip: text;
    162   -moz-background-clip: text;
    163   background-clip: text;
    164   -webkit-text-fill-color: transparent;
     158    background: -moz-linear-gradient(top, #833ab4 0%, #5851db 100%);
     159    background: -webkit-linear-gradient(top, #833ab4 0%, #5851db 100%);
     160    background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%);
     161    -webkit-background-clip: text;
     162    -moz-background-clip: text;
     163    background-clip: text;
     164    -webkit-text-fill-color: transparent;
    165165}
    166166
    167167@media only screen and (max-width: 1080px) {
    168   .spf_main_wrap {
     168    .spf_main_wrap {
    169169    flex-direction: column;
    170   }
     170    }
    171171
    172   .spf_main_left,
    173   .spf_main_right {
     172    .spf_main_left,
     173    .spf_main_right {
    174174    margin: 0 20px 20px 0;
    175175    flex-basis: 100%;
    176   }
     176    }
    177177
    178   .spf_main_bottom {
     178    .spf_main_bottom {
    179179    margin: 0 20px 0 0;
    180   }
     180    }
    181181}
  • simple-photo-feed/trunk/includes/class-simple-photo-feed-activator.php

    r3013593 r3319558  
    99 * @subpackage Simple_Photo_Feed/includes
    1010 */
     11
     12if ( ! defined( 'ABSPATH' ) ) {
     13    exit; // Exit if accessed directly.
     14}
    1115
    1216/**
  • simple-photo-feed/trunk/includes/class-simple-photo-feed-api.php

    r3211228 r3319558  
    99 * @subpackage Simple_Photo_Feed/includes
    1010 */
     11
     12if ( ! defined( 'ABSPATH' ) ) {
     13    exit; // Exit if accessed directly.
     14}
    1115
    1216/**
     
    217221     *
    218222     * @param   array $old Our old options value.
    219      * @param   array $new Our new updated options.
    220      * @since   1.0.0
    221      */
    222     public function spf_setup_cron_job( $old, $new ) {
    223 
    224         switch ( $new['cron_time'] ) {
     223     * @param   array $updated Our new updated options.
     224     * @since   1.0.0
     225     */
     226    public function spf_setup_cron_job( $old, $updated ) {
     227
     228        switch ( $updated['cron_time'] ) {
    225229            case 1:
    226230                $interval = 'hourly';
     
    240244        }
    241245
    242         if ( (bool) $new['auth'] ) {
    243 
    244             if ( $old['cron_time'] !== $new['cron_time'] ) {
     246        if ( (bool) $updated['auth'] ) {
     247
     248            if ( $old['cron_time'] !== $updated['cron_time'] ) {
    245249                wp_clear_scheduled_hook( 'simple_photo_update_feed' );
    246250            }
  • simple-photo-feed/trunk/includes/class-simple-photo-feed-deactivator.php

    r3013593 r3319558  
    99 * @subpackage Simple_Photo_Feed/includes
    1010 */
     11
     12if ( ! defined( 'ABSPATH' ) ) {
     13    exit; // Exit if accessed directly.
     14}
    1115
    1216/**
  • simple-photo-feed/trunk/includes/class-simple-photo-feed-i18n.php

    r3013593 r3319558  
    1212 * @subpackage Simple_Photo_Feed/includes
    1313 */
     14
     15if ( ! defined( 'ABSPATH' ) ) {
     16    exit; // Exit if accessed directly.
     17}
    1418
    1519/**
  • simple-photo-feed/trunk/includes/class-simple-photo-feed-loader.php

    r3013593 r3319558  
    99 * @subpackage Simple_Photo_Feed/includes
    1010 */
     11
     12if ( ! defined( 'ABSPATH' ) ) {
     13    exit; // Exit if accessed directly.
     14}
    1115
    1216/**
  • simple-photo-feed/trunk/includes/class-simple-photo-feed.php

    r3211228 r3319558  
    1212 * @subpackage Simple_Photo_Feed/includes
    1313 */
     14
     15if ( ! defined( 'ABSPATH' ) ) {
     16    exit; // Exit if accessed directly.
     17}
    1418
    1519/**
     
    7781        $this->define_public_hooks();
    7882
    79         $options = get_option( 'spf_main_settings', array( 'token' => '', 'cron_time' => '', 'app_id' => '', 'app_secret' => '' ) );
     83        $options = get_option(
     84            'spf_main_settings',
     85            array(
     86                'token'      => '',
     87                'cron_time'  => '',
     88                'app_id'     => '',
     89                'app_secret' => '',
     90            )
     91        );
    8092
    8193        // phpcs:disable
  • simple-photo-feed/trunk/public/class-simple-photo-feed-public.php

    r3117290 r3319558  
    11<?php
    22/**
    3  * The frontend functionality of the plugin.
     3 * The public-facing functionality of the plugin.
    44 *
    55 * @link       https://gp-web.dev/
     
    99 * @subpackage Simple_Photo_Feed/public
    1010 */
     11
     12if ( ! defined( 'ABSPATH' ) ) {
     13    exit; // Exit if accessed directly.
     14}
    1115
    1216/**
  • simple-photo-feed/trunk/public/css/simple-photo-feed-public.css

    r3117290 r3319558  
    11.spf_container {
    2   width: 100%;
    3   display: grid;
    4   grid-template-columns: 1fr 1fr 1fr;
    5   gap: 0.5rem;
    6   padding: 1rem;
    7   white-space: normal;
     2    width: 100%;
     3    display: grid;
     4    grid-template-columns: 1fr 1fr 1fr;
     5    gap: 0.5rem;
     6    padding: 1rem;
     7    white-space: normal;
    88}
    99
    1010.spf_container.spf_size_small {
    11   grid-template-columns: repeat(5, 1fr);
     11    grid-template-columns: repeat(5, 1fr);
    1212}
    1313
    1414.spf_container .spf_item {
    15   position: relative;
    16   padding-bottom: 100%;
    17   overflow: hidden;
     15    position: relative;
     16    padding-bottom: 100%;
     17    overflow: hidden;
    1818}
    1919
    2020.spf_container .spf_item img {
    21   position: absolute;
    22   top: 0;
    23   left: 0;
    24   margin: 0;
    25   object-fit: cover;
    26   width: 100%;
    27   height: 100%;
    28   transition: all 0.2s ease-in-out;
     21    position: absolute;
     22    top: 0;
     23    left: 0;
     24    margin: 0;
     25    object-fit: cover;
     26    width: 100%;
     27    height: 100%;
     28    transition: all 0.2s ease-in-out;
    2929}
    3030
    3131.spf_container .spf_item img:hover,
    3232.spf_container .spf_item a:focus img {
    33   transform: scale(1.1);
     33    transform: scale(1.1);
    3434}
    3535
    3636.spf_caption {
    37   font-size: 11px;
    38   padding: 0.5rem;
     37    font-size: 11px;
     38    padding: 0.5rem;
    3939}
    4040
    4141#spf_lightbox_container {
    42   position: fixed;
    43   top: 0;
    44   left: 0;
    45   right: 0;
    46   bottom: 0;
    47   background: rgba(0, 0, 0, 0.5);
    48   backdrop-filter: blur(5px);
    49   z-index: 99999999;
     42    position: fixed;
     43    top: 0;
     44    left: 0;
     45    right: 0;
     46    bottom: 0;
     47    background: rgba(0, 0, 0, 0.5);
     48    backdrop-filter: blur(5px);
     49    z-index: 99999999;
    5050}
    5151
    5252#spf_lightbox_image_box {
    53   position: fixed;
    54   top: 2em;
    55   left: 2em;
    56   right: calc(2em + 35%);
    57   bottom: 2em;
    58   text-align: center;
     53    position: fixed;
     54    top: 2em;
     55    left: 2em;
     56    right: calc(2em + 35%);
     57    bottom: 2em;
     58    text-align: center;
    5959}
    6060
    6161#spf_lightbox_image_box img {
    62   max-width: 100%;
    63   max-height: 100%;
    64   border: 2px solid #000;
    65   outline: 1px solid #ccc;
    66   box-sizing: border-box;
    67   position: absolute;
    68   left: 50%;
    69   top: 50%;
    70   translate: -50% -50%;
     62    max-width: 100%;
     63    max-height: 100%;
     64    border: 2px solid #000;
     65    outline: 1px solid #ccc;
     66    box-sizing: border-box;
     67    position: absolute;
     68    left: 50%;
     69    top: 50%;
     70    translate: -50% -50%;
    7171}
    7272
    7373#spf_lightbox_caption {
    74   position: fixed;
    75   bottom: 11em;
    76   top: 7em;
    77   right: 2em;
    78   background: #222;
    79   color: #fff;
    80   padding: .5em;
    81   box-sizing: border-box;
    82   text-align: center;
    83   border: 1px solid #ccc;
    84   width: calc(35% - 4em);
    85   overflow-y: auto;
    86   text-align: left;
     74    position: fixed;
     75    bottom: 11em;
     76    top: 7em;
     77    right: 2em;
     78    background: #222;
     79    color: #fff;
     80    padding: .5em;
     81    box-sizing: border-box;
     82    text-align: center;
     83    border: 1px solid #ccc;
     84    width: calc(35% - 4em);
     85    overflow-y: auto;
     86    text-align: left;
    8787}
    8888
    8989#spf_lightbox_link {
    90   position: fixed;
    91   right: 2em;
    92   bottom: 7em;
    93   background: #222;
    94   color: #fff;
    95   padding: .5em;
    96   width: calc(35% - 4em);
    97   box-sizing: border-box;
    98   text-align: center;
    99   text-decoration: none;
    100   border: 1px solid #ccc;
     90    position: fixed;
     91    right: 2em;
     92    bottom: 7em;
     93    background: #222;
     94    color: #fff;
     95    padding: .5em;
     96    width: calc(35% - 4em);
     97    box-sizing: border-box;
     98    text-align: center;
     99    text-decoration: none;
     100    border: 1px solid #ccc;
    101101}
    102102#spf_lightbox_link:hover {
    103   background: #444;
     103    background: #444;
    104104}
    105105
     
    107107#spf_lightbox_prev > svg,
    108108#spf_lightbox_close > svg {
    109   width: 3em;
    110   height: 3em;
    111   color: #fff;
     109    width: 3em;
     110    height: 3em;
     111    color: #fff;
    112112}
    113113
     
    115115#spf_lightbox_prev:hover > svg,
    116116#spf_lightbox_close:hover > svg {
    117   color: #aaaaaa;
     117    color: #aaaaaa;
    118118}
    119119
    120120#spf_lightbox_next {
    121   position: fixed;
    122   right: 2em;
    123   transform: translateY(-50%);
    124   cursor: pointer;
    125   bottom: 1em;
     121    position: fixed;
     122    right: 2em;
     123    transform: translateY(-50%);
     124    cursor: pointer;
     125    bottom: 1em;
    126126}
    127127
    128128#spf_lightbox_prev {
    129   position: fixed;
    130   transform: translateY(-50%);
    131   cursor: pointer;
    132   bottom: 1em;
    133   right: calc(35% - 5em);
     129    position: fixed;
     130    transform: translateY(-50%);
     131    cursor: pointer;
     132    bottom: 1em;
     133    right: calc(35% - 5em);
    134134}
    135135
    136136#spf_lightbox_close {
    137   position: fixed;
    138   top: 2em;
    139   right: 2em;
    140   cursor: pointer;
     137    position: fixed;
     138    top: 2em;
     139    right: 2em;
     140    cursor: pointer;
    141141}
    142142
    143143@media (orientation:portrait) {
    144   #spf_lightbox_image_box {
    145     right: 2em;
    146     bottom: 16em;
    147     top: 7em;
    148   }
     144    #spf_lightbox_image_box {
     145    right: 2em;
     146    bottom: 16em;
     147    top: 7em;
     148    }
    149149
    150   #spf_lightbox_caption {
    151     top: unset;
    152     left: 2em;
    153     width: unset;
    154     text-align: center;
    155     bottom: 2em;
    156     height: 8.8em;
    157   }
     150    #spf_lightbox_caption {
     151    top: unset;
     152    left: 2em;
     153    width: unset;
     154    text-align: center;
     155    bottom: 2em;
     156    height: 8.8em;
     157    }
    158158
    159   #spf_lightbox_link {
    160     bottom: 12em;
    161     right: 50%;
    162     translate: 50%;
    163     width: unset;
    164     max-width: calc(100% - 11em);
    165   }
     159    #spf_lightbox_link {
     160    bottom: 12em;
     161    right: 50%;
     162    translate: 50%;
     163    width: unset;
     164    max-width: calc(100% - 11em);
     165    }
    166166
    167   #spf_lightbox_prev {
    168     left: 2em;
    169     right: unset;
    170     bottom: 9.8em;
    171   }
     167    #spf_lightbox_prev {
     168    left: 2em;
     169    right: unset;
     170    bottom: 9.8em;
     171    }
    172172
    173   #spf_lightbox_next {
    174     bottom: 9.8em;
    175   }
     173    #spf_lightbox_next {
     174    bottom: 9.8em;
     175    }
    176176}
    177177
    178178@media only screen and (max-width: 768px) {
    179   .spf_container {
     179    .spf_container {
    180180    grid-template-columns: 1fr 1fr;
    181181    padding: 1rem 0;
    182   }
     182    }
    183183
    184   .spf_container.spf_size_small {
     184    .spf_container.spf_size_small {
    185185    grid-template-columns: repeat(3, 1fr);
    186   }
     186    }
    187187}
    188188
    189189@media only screen and (max-width: 480px) {
    190   .spf_container {
     190    .spf_container {
    191191    grid-template-columns: 1fr;
    192   }
     192    }
    193193
    194   .spf_container.spf_size_small {
     194    .spf_container.spf_size_small {
    195195    grid-template-columns: 1fr 1fr;
    196   }
     196    }
    197197}
  • simple-photo-feed/trunk/public/partials/simple-photo-feed-public-display.php

    r3163760 r3319558  
    1111 * @subpackage Simple_Photo_Feed/public/partials
    1212 */
     13
     14if ( ! defined( 'ABSPATH' ) ) {
     15    exit; // Exit if accessed directly.
     16}
    1317
    1418$options  = get_option( 'spf_main_settings', array() );
     
    2933        }
    3034
    31         $url     = 'VIDEO' !== $p->media_type ? $p->media_url : $p->thumbnail_url;
     35        $url     = 'VIDEO' !== $p->media_type ? esc_url( $p->media_url ) : esc_url( $p->thumbnail_url );
    3236        $caption = property_exists( $p, 'caption' ) ? $p->caption : esc_html__( 'No caption.', 'simple-photo-feed' );
    3337
     
    4044            echo '<a href="' . esc_url( $p->permalink ) . '" target="_blank" title="' . esc_attr( $caption ) . '"><img src="' . esc_url( $url ) . '" alt="" /></a>';
    4145        } else {
    42             echo '<a href="' . esc_url( $p->permalink ) . '" target="_blank" class="spf_lightbox" data-i="' . $i . '" data-count="' . count( $media ) . '" data-src="' . $url . '" data-url="' . esc_url( $p->permalink ) . '" title="' . nl2br( esc_attr( $caption ) ) . '">
    43                 <img src="' . esc_url( $url ) . '" alt="" ' . ( 'on' == $text ? 'aria-labelledby="spf_' . $p->id . '"' : 'aria-label="' . esc_html( $caption ) . '"' ) . ' />
     46            echo '<a href="' . esc_url( $p->permalink ) . '" target="_blank" class="spf_lightbox" data-i="' . esc_attr( $i ) . '" data-count="' . esc_attr( count( $media ) ) . '" data-src="' . esc_url( $url ) . '" data-url="' . esc_url( $p->permalink ) . '" title="' . nl2br( esc_attr( $caption ) ) . '">
     47                <img src="' . esc_url( $url ) . '" alt="" ' . ( 'on' === $text ? 'aria-labelledby="spf_' . esc_attr( $p->id ) . '"' : 'aria-label="' . esc_attr( $caption ) . '"' ) . ' />
    4448            </a>';
    4549        }
  • simple-photo-feed/trunk/simple-photo-feed.php

    r3241539 r3319558  
    1414 * Plugin URI:        https://wordpress.org/plugins/simple-photo-feed/
    1515 * Description:       Simple Photo Feed provides an easy way to connect to your Instagram account and display your photos in your WordPress site.
    16  * Version:           1.4.1
     16 * Version:           1.4.2
    1717 * Requires at least: 5.3.0
    18  * Tested up to:      6.7.2
     18 * Tested up to:      6.8
    1919 * Requires PHP:      7.2
    2020 * Author:            George Pattichis
     
    3434 * Current plugin version
    3535 */
    36 define( 'SPF_VERSION', '1.4.1' );
     36define( 'SPF_VERSION', '1.4.2' );
    3737
    3838/**
Note: See TracChangeset for help on using the changeset viewer.