Version Description
Download this release
Release Info
Developer | smashballoon |
Plugin | Instagram Feed |
Version | 1.3.0 |
Comparing to | |
See all releases |
Code changes from version 1.2.2 to 1.3.0
- README.txt +94 -28
- css/sb-instagram.css +155 -9
- img/instagram-pro-promo.png +0 -0
- img/loader.png +0 -0
- instagram-feed-admin.php +214 -44
- instagram-feed.php +58 -15
- js/sb-instagram.js +142 -38
README.txt
CHANGED
@@ -3,75 +3,104 @@ Contributors: smashballoon
|
|
3 |
Tags: Instagram, Instagram feed, Instagram photos, Instagram plugin, Instagram stream, Custom Instagram Feed, responsive Instagram, mobile Instagram, Instagram posts, Instagram wall, Instagram account
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 4.0.1
|
6 |
-
Stable tag: 1.
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
10 |
-
|
11 |
|
12 |
== Description ==
|
13 |
|
14 |
-
Display
|
15 |
|
16 |
= Features =
|
17 |
* Super **simple to set up**
|
|
|
18 |
* Completely **responsive** and mobile ready - layout looks great on any screen size and in any container width
|
19 |
* **Completely customizable** - Customize the width, height, number of photos, number of columns, image size, background color, image spacing and more!
|
20 |
* Display **multiple Instagram feeds** on the same page or on different pages throughout your site
|
21 |
* Use the built-in **shortcode options** to completely customize each of your Instagram feeds
|
22 |
* Display thumbnail, medium or **full-size photos** from your Instagram feed
|
23 |
* **Infinitely load more** of your Instagram photos with the 'Load More' button
|
|
|
|
|
24 |
* Display your Instagram photos chronologically or in random order
|
25 |
-
* Add your own Custom CSS and JavaScript
|
26 |
|
27 |
= Benefits =
|
28 |
-
* Increase your Instagram followers by displaying your Instagram content on your
|
29 |
-
* Save time and increase efficiency by only posting your photos to Instagram and automatically displaying them on your website
|
|
|
|
|
|
|
30 |
|
31 |
= Featured Review =
|
32 |
-
"**
|
|
|
|
|
33 |
|
34 |
= Feedback or Support =
|
35 |
We're dedicated to providing the most customizable, robust and well supported Instagram feed plugin in the world, so if you have an issue or have any feedback on how to improve the plugin then please open a ticket in the [Support forum](http://wordpress.org/support/plugin/instagram-feed 'Instagram Feed Support Forum').
|
36 |
|
37 |
-
For a pop-up photo **lightbox**, to display posts by **hashtag**, show photo **captions**, **video** support + more, check out the [Pro version](http://smashballoon.com/instagram-feed/
|
38 |
|
39 |
== Installation ==
|
40 |
|
41 |
1. Install the Instagram plugin either via the WordPress plugin directory, or by uploading the files to your web server (in the `/wp-content/plugins/` directory).
|
42 |
2. Activate the plugin through the 'Plugins' menu in WordPress.
|
43 |
-
3. Navigate to the 'Instagram Feed' settings page to
|
44 |
4. Use the shortcode `[instagram-feed]` in your page, post or widget to display your photos.
|
45 |
-
5. You can display multiple Instagram feeds by using shortcode options, for example: `[instagram-feed
|
|
|
|
|
46 |
|
47 |
= Shortcode Options =
|
|
|
48 |
* **id** - An Instagram User ID - Example: `[instagram-feed id=1234567]`
|
49 |
* **width** - The width of your feed. Any number - Example: `[instagram-feed width=50]`
|
50 |
* **widthunit** - The unit of the width. 'px' or '%' - Example: `[instagram-feed widthunit=%]`
|
51 |
* **height** - The height of your feed. Any number - Example: `[instagram-feed height=250]`
|
52 |
* **heightunit** - The unit of the height. 'px' or '%' - Example: `[instagram-feed heightunit=px]`
|
|
|
|
|
|
|
53 |
* **sortby** - Sort the posts by Newest to Oldest (none) or Random (random) - Example: `[instagram-feed sortby=random]`
|
54 |
* **num** - The number of photos to display initially. Maximum is 33 - Example: `[instagram-feed num=10]`
|
55 |
* **cols** - The number of columns in your feed. 1 - 10 - Example: `[instagram-feed cols=5]`
|
56 |
* **imagepadding** - The spacing around your photos - Example: `[instagram-feed imagepadding=10]`
|
57 |
* **imagepaddingunit** - The unit of the padding. 'px' or '%' - Example: `[instagram-feed imagepaddingunit=px]`
|
58 |
-
*
|
|
|
|
|
|
|
|
|
|
|
59 |
* **showbutton** - Whether to show the 'Load More' button. 'true' or 'false' - Example: `[instagram-feed showbutton='false']`
|
60 |
* **buttoncolor** - The background color of the button. Any hex color code - Example: `[instagram-feed buttoncolor=#000]`
|
61 |
* **buttontextcolor** - The text color of the button. Any hex color code - Example: `[instagram-feed buttontextcolor=#fff]`
|
62 |
* **imageres** - The resolution/size of the photos. 'full', 'medium' or 'thumb' - Example: `[instagram-feed imageres=full]`
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
|
64 |
-
For more shortcode options, check out the [Pro version](http://smashballoon.com/instagram-feed/
|
65 |
|
66 |
== Frequently Asked Questions ==
|
67 |
|
68 |
= Can I display multiple Instagram feeds on my site or on the same page? =
|
69 |
|
70 |
-
Yep. You can display multiple Instagram feeds by using our built-in shortcode options, for example: `[instagram-feed id=
|
|
|
|
|
|
|
|
|
71 |
|
72 |
= How do I find my Instagram Access Token and User ID =
|
73 |
|
74 |
-
We've made it super easy. Simply click on the big blue button on the Instagram
|
75 |
|
76 |
You can also display photos from other peoples Instagram accounts. To find their Instagram User ID you can use [this tool](http://jelled.com/instagram/lookup-user-id).
|
77 |
|
@@ -79,18 +108,20 @@ You can also display photos from other peoples Instagram accounts. To find their
|
|
79 |
|
80 |
Nope. The Access Token used in the plugin is a "read only" token, which means that it could never be used maliciously to manipulate your Instagram account.
|
81 |
|
82 |
-
= My Instagram feed isn't
|
83 |
|
84 |
-
There are
|
85 |
|
86 |
-
* Your Instagram account
|
87 |
-
* Your
|
|
|
|
|
88 |
|
89 |
-
If you're still having an issue displaying your feed then please open a ticket in the [Support forum](http://wordpress.org/support/plugin/instagram-feed 'Instagram Feed Support Forum') with a link to the page where you're trying to display the feed and, if possible, a link to your Instagram account.
|
90 |
|
91 |
-
= Can I view the full-size photos directly on my website? =
|
92 |
|
93 |
-
This is a feature of the [Pro version](http://smashballoon.com/instagram-feed/
|
94 |
|
95 |
= How do I embed my Instagram Feed directly into a WordPress page template? =
|
96 |
|
@@ -100,32 +131,67 @@ You can embed your Instagram feed directly into a template file by using the Wor
|
|
100 |
|
101 |
The below options are available on the Instagram Feed Settings page but can also be used directly in the `[instagram-feed]` shortcode to customize individual Instagram feeds on a feed-by-feed basis.
|
102 |
|
|
|
103 |
* **id** - An Instagram User ID - Example: `[instagram-feed id=1234567]`
|
104 |
* **width** - The width of your feed. Any number - Example: `[instagram-feed width=50]`
|
105 |
* **widthunit** - The unit of the width. 'px' or '%' - Example: `[instagram-feed widthunit=%]`
|
106 |
* **height** - The height of your feed. Any number - Example: `[instagram-feed height=250]`
|
107 |
* **heightunit** - The unit of the height. 'px' or '%' - Example: `[instagram-feed heightunit=px]`
|
|
|
|
|
|
|
108 |
* **sortby** - Sort the posts by Newest to Oldest (none) or Random (random) - Example: `[instagram-feed sortby=random]`
|
109 |
* **num** - The number of photos to display initially. Maximum is 33 - Example: `[instagram-feed num=10]`
|
110 |
* **cols** - The number of columns in your feed. 1 - 10 - Example: `[instagram-feed cols=5]`
|
111 |
* **imagepadding** - The spacing around your photos - Example: `[instagram-feed imagepadding=10]`
|
112 |
* **imagepaddingunit** - The unit of the padding. 'px' or '%' - Example: `[instagram-feed imagepaddingunit=px]`
|
113 |
-
*
|
|
|
|
|
|
|
|
|
|
|
114 |
* **showbutton** - Whether to show the 'Load More' button. 'true' or 'false' - Example: `[instagram-feed showbutton='false']`
|
115 |
* **buttoncolor** - The background color of the button. Any hex color code - Example: `[instagram-feed buttoncolor=#000]`
|
116 |
* **buttontextcolor** - The text color of the button. Any hex color code - Example: `[instagram-feed buttontextcolor=#fff]`
|
117 |
* **imageres** - The resolution/size of the photos. 'full', 'medium' or 'thumb' - Example: `[instagram-feed imageres=full]`
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
|
119 |
-
For more shortcode options, check out the [Pro version](http://smashballoon.com/instagram-feed/
|
120 |
|
121 |
== Screenshots ==
|
122 |
|
123 |
-
1.
|
124 |
-
2.
|
125 |
-
3.
|
126 |
-
4.
|
|
|
|
|
|
|
127 |
|
128 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
= 1.2.2 =
|
130 |
* Tweak: Added an initialize function to the plugin
|
131 |
* Fix: Fixed an occasional issue with the 'Sort Photos By' option being undefined
|
@@ -140,7 +206,7 @@ For more shortcode options, check out the [Pro version](http://smashballoon.com/
|
|
140 |
* New: Added an option to display your Instagram photos in random order
|
141 |
* New: A new tabbed layout has been implemented on the plugin's settings pages
|
142 |
* New: Added an option to preserve your settings when uninstalling the plugin
|
143 |
-
* New: Added a [Pro version](http://smashballoon.com/instagram-feed/
|
144 |
* Tweak: The 'Load More' button now automatically hides if there are no more photos to load
|
145 |
* Tweak: Added a small gap to the top of the 'Load More' button
|
146 |
* Tweak: Added a icon to the Instagram Feed menu item
|
3 |
Tags: Instagram, Instagram feed, Instagram photos, Instagram plugin, Instagram stream, Custom Instagram Feed, responsive Instagram, mobile Instagram, Instagram posts, Instagram wall, Instagram account
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 4.0.1
|
6 |
+
Stable tag: 1.3
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
10 |
+
Display beautifully clean, customizable, and responsive feeds from multiple Instagram accounts
|
11 |
|
12 |
== Description ==
|
13 |
|
14 |
+
Display Instagram photos from any non-private Instagram accounts, either in the same single feed or in multiple different ones.
|
15 |
|
16 |
= Features =
|
17 |
* Super **simple to set up**
|
18 |
+
* Display photos from **multiple Instagram accounts** in the same feed or in separate feeds
|
19 |
* Completely **responsive** and mobile ready - layout looks great on any screen size and in any container width
|
20 |
* **Completely customizable** - Customize the width, height, number of photos, number of columns, image size, background color, image spacing and more!
|
21 |
* Display **multiple Instagram feeds** on the same page or on different pages throughout your site
|
22 |
* Use the built-in **shortcode options** to completely customize each of your Instagram feeds
|
23 |
* Display thumbnail, medium or **full-size photos** from your Instagram feed
|
24 |
* **Infinitely load more** of your Instagram photos with the 'Load More' button
|
25 |
+
* Includes a **Follow on Instagram button** at the bottom of your feed
|
26 |
+
* Display a **beautiful header** at the top of your feed
|
27 |
* Display your Instagram photos chronologically or in random order
|
28 |
+
* Add your own Custom CSS and JavaScript for even deeper customizations
|
29 |
|
30 |
= Benefits =
|
31 |
+
* **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.
|
32 |
+
* **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
|
33 |
+
* **Display Your Content Your Way** - Customize your Instagram feeds to look exactly the way you want, so that they blend seemlessly into your site or pop out at your visitors!
|
34 |
+
* **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.
|
35 |
+
* **Super simple to set up** - Once installed, you can be displaying your Instagram photos within 30 seconds! No confusing steps or Instagram Developer account needed.
|
36 |
|
37 |
= Featured Review =
|
38 |
+
"**Simple and concise** - Excellent plugin. Simple and non-bloated. I had a couple small issues with the plugin when I first started using it, but a quick comment on the support forums got a new version pushed out the next day with the fix.
|
39 |
+
|
40 |
+
Awesome support!" - [Josh Jones](https://wordpress.org/support/topic/simple-and-concise-3 'Simple and concise Instagram plugin')
|
41 |
|
42 |
= Feedback or Support =
|
43 |
We're dedicated to providing the most customizable, robust and well supported Instagram feed plugin in the world, so if you have an issue or have any feedback on how to improve the plugin then please open a ticket in the [Support forum](http://wordpress.org/support/plugin/instagram-feed 'Instagram Feed Support Forum').
|
44 |
|
45 |
+
For a pop-up photo **lightbox**, to display posts by **hashtag**, show photo **captions**, **video** support + more, check out the [Pro version](http://smashballoon.com/instagram-feed/ 'Instagram Feed Pro').
|
46 |
|
47 |
== Installation ==
|
48 |
|
49 |
1. Install the Instagram plugin either via the WordPress plugin directory, or by uploading the files to your web server (in the `/wp-content/plugins/` directory).
|
50 |
2. Activate the plugin through the 'Plugins' menu in WordPress.
|
51 |
+
3. Navigate to the 'Instagram Feed' settings page to obtain your Instagram Access Token and User ID and configure your settings.
|
52 |
4. Use the shortcode `[instagram-feed]` in your page, post or widget to display your photos.
|
53 |
+
5. You can display multiple Instagram feeds by using shortcode options, for example: `[instagram-feed num=6 cols=3]`
|
54 |
+
|
55 |
+
For simple step-by-step directions on how to set up the Instagram Feed plugin please refer to our [setup guide](http://smashballoon.com/instagram-feed/free/ 'Instagram Feed setup guide').
|
56 |
|
57 |
= Shortcode Options =
|
58 |
+
* **General Options**
|
59 |
* **id** - An Instagram User ID - Example: `[instagram-feed id=1234567]`
|
60 |
* **width** - The width of your feed. Any number - Example: `[instagram-feed width=50]`
|
61 |
* **widthunit** - The unit of the width. 'px' or '%' - Example: `[instagram-feed widthunit=%]`
|
62 |
* **height** - The height of your feed. Any number - Example: `[instagram-feed height=250]`
|
63 |
* **heightunit** - The unit of the height. 'px' or '%' - Example: `[instagram-feed heightunit=px]`
|
64 |
+
* **background** - The background color of the feed. Any hex color code - Example: `[instagram-feed background=#ffff00]`
|
65 |
+
*
|
66 |
+
* **Photo Options**
|
67 |
* **sortby** - Sort the posts by Newest to Oldest (none) or Random (random) - Example: `[instagram-feed sortby=random]`
|
68 |
* **num** - The number of photos to display initially. Maximum is 33 - Example: `[instagram-feed num=10]`
|
69 |
* **cols** - The number of columns in your feed. 1 - 10 - Example: `[instagram-feed cols=5]`
|
70 |
* **imagepadding** - The spacing around your photos - Example: `[instagram-feed imagepadding=10]`
|
71 |
* **imagepaddingunit** - The unit of the padding. 'px' or '%' - Example: `[instagram-feed imagepaddingunit=px]`
|
72 |
+
*
|
73 |
+
* **Header Options**
|
74 |
+
* **showheader** - Whether to show the feed Header. 'true' or 'false' - Example: `[instagram-feed showheader=false]`
|
75 |
+
* **headercolor** - The color of the Header text. Any hex color code - Example: `[instagram-feed headercolor=#333]`
|
76 |
+
*
|
77 |
+
* **'Load More' Button Options**
|
78 |
* **showbutton** - Whether to show the 'Load More' button. 'true' or 'false' - Example: `[instagram-feed showbutton='false']`
|
79 |
* **buttoncolor** - The background color of the button. Any hex color code - Example: `[instagram-feed buttoncolor=#000]`
|
80 |
* **buttontextcolor** - The text color of the button. Any hex color code - Example: `[instagram-feed buttontextcolor=#fff]`
|
81 |
* **imageres** - The resolution/size of the photos. 'full', 'medium' or 'thumb' - Example: `[instagram-feed imageres=full]`
|
82 |
+
*
|
83 |
+
* **'Follow on Instagram' Button Options**
|
84 |
+
* **showfollow** - Whether to show the 'Follow on Instagram' button. 'true' or 'false' - Example: `[instagram-feed showfollow=true]`
|
85 |
+
* **followcolor** - The background color of the button. Any hex color code - Example: `[instagram-feed followcolor=#ff0000]`
|
86 |
+
* **followtextcolor** - The text color of the button. Any hex color code - Example: `[instagram-feed followtextcolor=#fff]`
|
87 |
+
* **followtext** - The text used for the button - Example: `[instagram-feed followtext="Follow me"]`
|
88 |
|
89 |
+
For more shortcode options, check out the [Pro version](http://smashballoon.com/instagram-feed/ 'Instagram Feed Pro').
|
90 |
|
91 |
== Frequently Asked Questions ==
|
92 |
|
93 |
= Can I display multiple Instagram feeds on my site or on the same page? =
|
94 |
|
95 |
+
Yep. You can display multiple Instagram feeds by using our built-in shortcode options, for example: `[instagram-feed id="12986477" cols=3]`.
|
96 |
+
|
97 |
+
= Can I display photos from more than one Instagram account in one single feed? =
|
98 |
+
|
99 |
+
Yep. You can just separate the IDs by commas, either in the User ID(s) field on the plugin's Settings page, or directly in the shortcode like so: `[instagram-feed id="12986477,13460080"]`.
|
100 |
|
101 |
= How do I find my Instagram Access Token and User ID =
|
102 |
|
103 |
+
We've made it super easy. Simply click on the big blue button on the Instagram Feed Settings page and log into your Instagram account. The plugin will then retrieve and display both your Access Token and User ID from Instagram.
|
104 |
|
105 |
You can also display photos from other peoples Instagram accounts. To find their Instagram User ID you can use [this tool](http://jelled.com/instagram/lookup-user-id).
|
106 |
|
108 |
|
109 |
Nope. The Access Token used in the plugin is a "read only" token, which means that it could never be used maliciously to manipulate your Instagram account.
|
110 |
|
111 |
+
= My Instagram feed isn't displaying. Why not!? =
|
112 |
|
113 |
+
There are a few common reasons for this:
|
114 |
|
115 |
+
* Your Instagram account may be set to private. Instagram doesn't allow photos from private Instagram accounts to be displayed publicly.
|
116 |
+
* Your Access Token may not be valid. Try clicking on the blue Instagram login button on the plugin's Settings page again and copy and paste the Instagram token it gives you into the plugin's Access Token field.
|
117 |
+
* Your User ID may not be valid. Be sure you're not using your Instagram username instead of your User ID. You can find your Instagram User ID by using [this tool](http://jelled.com/instagram/lookup-user-id).
|
118 |
+
* Your website may contain a JavaScript error which is preventing JavaScript from running. The plugin uses JavaScript to load the Instagram photos into your page and so needs JavaScript to be running in order to work. You would need to remove any existing JavaScript errors on your website for the plugin to be able to load in your feed.
|
119 |
|
120 |
+
If you're still having an issue displaying your feed then please open a ticket in the [Support forum](http://wordpress.org/support/plugin/instagram-feed 'Instagram Feed Support Forum') with a link to the page where you're trying to display the Instagram feed and, if possible, a link to your Instagram account.
|
121 |
|
122 |
+
= Can I view the full-size photos or play Instagram videos directly on my website? =
|
123 |
|
124 |
+
This is a feature of the [Pro version](http://smashballoon.com/instagram-feed/ 'Instagram Feed Pro') of the plugin, which allows you to view the photos in a pop-up lightbox, support videos, display captions, display photos by hashtag + more!
|
125 |
|
126 |
= How do I embed my Instagram Feed directly into a WordPress page template? =
|
127 |
|
131 |
|
132 |
The below options are available on the Instagram Feed Settings page but can also be used directly in the `[instagram-feed]` shortcode to customize individual Instagram feeds on a feed-by-feed basis.
|
133 |
|
134 |
+
* **General Options**
|
135 |
* **id** - An Instagram User ID - Example: `[instagram-feed id=1234567]`
|
136 |
* **width** - The width of your feed. Any number - Example: `[instagram-feed width=50]`
|
137 |
* **widthunit** - The unit of the width. 'px' or '%' - Example: `[instagram-feed widthunit=%]`
|
138 |
* **height** - The height of your feed. Any number - Example: `[instagram-feed height=250]`
|
139 |
* **heightunit** - The unit of the height. 'px' or '%' - Example: `[instagram-feed heightunit=px]`
|
140 |
+
* **background** - The background color of the feed. Any hex color code - Example: `[instagram-feed background=#ffff00]`
|
141 |
+
*
|
142 |
+
* **Photo Options**
|
143 |
* **sortby** - Sort the posts by Newest to Oldest (none) or Random (random) - Example: `[instagram-feed sortby=random]`
|
144 |
* **num** - The number of photos to display initially. Maximum is 33 - Example: `[instagram-feed num=10]`
|
145 |
* **cols** - The number of columns in your feed. 1 - 10 - Example: `[instagram-feed cols=5]`
|
146 |
* **imagepadding** - The spacing around your photos - Example: `[instagram-feed imagepadding=10]`
|
147 |
* **imagepaddingunit** - The unit of the padding. 'px' or '%' - Example: `[instagram-feed imagepaddingunit=px]`
|
148 |
+
*
|
149 |
+
* **Header Options**
|
150 |
+
* **showheader** - Whether to show the feed Header. 'true' or 'false' - Example: `[instagram-feed showheader=false]`
|
151 |
+
* **headercolor** - The color of the Header text. Any hex color code - Example: `[instagram-feed headercolor=#333]`
|
152 |
+
*
|
153 |
+
* **'Load More' Button Options**
|
154 |
* **showbutton** - Whether to show the 'Load More' button. 'true' or 'false' - Example: `[instagram-feed showbutton='false']`
|
155 |
* **buttoncolor** - The background color of the button. Any hex color code - Example: `[instagram-feed buttoncolor=#000]`
|
156 |
* **buttontextcolor** - The text color of the button. Any hex color code - Example: `[instagram-feed buttontextcolor=#fff]`
|
157 |
* **imageres** - The resolution/size of the photos. 'full', 'medium' or 'thumb' - Example: `[instagram-feed imageres=full]`
|
158 |
+
*
|
159 |
+
* **'Follow on Instagram' Button Options**
|
160 |
+
* **showfollow** - Whether to show the 'Follow on Instagram' button. 'true' or 'false' - Example: `[instagram-feed showfollow=true]`
|
161 |
+
* **followcolor** - The background color of the button. Any hex color code - Example: `[instagram-feed followcolor=#ff0000]`
|
162 |
+
* **followtextcolor** - The text color of the button. Any hex color code - Example: `[instagram-feed followtextcolor=#fff]`
|
163 |
+
* **followtext** - The text used for the button - Example: `[instagram-feed followtext="Follow me"]`
|
164 |
|
165 |
+
For more shortcode options, check out the [Pro version](http://smashballoon.com/instagram-feed/ 'Instagram Feed Pro').
|
166 |
|
167 |
== Screenshots ==
|
168 |
|
169 |
+
1. Default plugin styling
|
170 |
+
2. Your Instagram Feed is completely customizable
|
171 |
+
3. Display multiple Instagram feeds from any non-private Instagram account
|
172 |
+
4. Your Instagram feeds are completely responsive and look great on any device
|
173 |
+
5. Display your Instagram photos in multiple columns, with or without a scrollbar
|
174 |
+
6. Just copy and paste the shortcode into any page, post or widget on your site
|
175 |
+
7. The Instagram Feed plugin Settings pages
|
176 |
|
177 |
== Changelog ==
|
178 |
+
= 1.3 =
|
179 |
+
* New: You can now display photos from multiple Instagram User IDs. Simply separate your IDs by commas.
|
180 |
+
* New: Added an optional header to the feed which contains your Instagram profile picture, username and bio. You can activate this on the Customize page.
|
181 |
+
* New: The plugin now includes an 'Auto-detect' option for the Image Resolution setting which will automatically set the correct image resolution based on the size of your feed.
|
182 |
+
* New: Added an optional 'Follow on Instagram' button which can be displayed at the bottom of your feed. You can activate this on the Customize page.
|
183 |
+
* New: Added the ability to use your own custom text for the 'Load More' button
|
184 |
+
* New: Added a loader icon to indicate that the photos are loading
|
185 |
+
* New: Added a unique ID to each Instagram photo so that they can be targeted individually via CSS
|
186 |
+
* Tweak: Added a subtle fade effect to the photos when hovering over them
|
187 |
+
* Tweak: Improved the responsive layout behavior of the feed
|
188 |
+
* Tweak: Improved the documentation within the plugin settings pages
|
189 |
+
* Tweak: Included a link to [step-by-step setup directions](http//:smashballoon.com/instagram-feed/free/ 'Instagram feed setup directions') for the plugin
|
190 |
+
* Fix: Fixed an issue with the feed not clearing other widgets correctly
|
191 |
+
|
192 |
+
= 1.2.3 =
|
193 |
+
* Fix: Replaced the 'on' function with the 'click' function to increase compatibility with themes using older versions of jQuery
|
194 |
+
|
195 |
= 1.2.2 =
|
196 |
* Tweak: Added an initialize function to the plugin
|
197 |
* Fix: Fixed an occasional issue with the 'Sort Photos By' option being undefined
|
206 |
* New: Added an option to display your Instagram photos in random order
|
207 |
* New: A new tabbed layout has been implemented on the plugin's settings pages
|
208 |
* New: Added an option to preserve your settings when uninstalling the plugin
|
209 |
+
* New: Added a [Pro version](http://smashballoon.com/instagram-feed/ 'Instagram Feed Pro') of the plugin which allows you to display photos by hashtag, display captions, view photos in a pop-up lightbox, show the number of likes & comments and more
|
210 |
* Tweak: The 'Load More' button now automatically hides if there are no more photos to load
|
211 |
* Tweak: Added a small gap to the top of the 'Load More' button
|
212 |
* Tweak: Added a icon to the Instagram Feed menu item
|
css/sb-instagram.css
CHANGED
@@ -4,7 +4,6 @@
|
|
4 |
|
5 |
/* Feed container */
|
6 |
#sb_instagram {
|
7 |
-
float: left;
|
8 |
width: 100%;
|
9 |
margin: 0 auto;
|
10 |
padding: 0;
|
@@ -73,6 +72,12 @@
|
|
73 |
#sb_instagram .sbi_photo{
|
74 |
display: block;
|
75 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
#sb_instagram img{
|
77 |
display: block;
|
78 |
padding: 0 !important;
|
@@ -118,29 +123,121 @@
|
|
118 |
display: block;
|
119 |
}
|
120 |
|
121 |
-
/*
|
122 |
-
#sb_instagram
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
display: none;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
float: left;
|
125 |
clear: both;
|
126 |
width: 100%;
|
127 |
text-align: center;
|
128 |
}
|
129 |
-
#sb_instagram #sbi_load
|
|
|
130 |
display: -moz-inline-stack;
|
131 |
display: inline-block;
|
132 |
vertical-align: top;
|
133 |
zoom: 1;
|
134 |
*display: inline;
|
135 |
|
136 |
-
padding:
|
137 |
-
margin: 0 auto;
|
138 |
background: #333;
|
139 |
color: #eee;
|
140 |
border: none;
|
141 |
color: #fff;
|
142 |
text-decoration: none;
|
143 |
font-size: 13px;
|
|
|
144 |
|
145 |
-moz-border-radius: 4px;
|
146 |
-webkit-border-radius: 4px;
|
@@ -150,12 +247,61 @@
|
|
150 |
-moz-box-sizing: border-box;
|
151 |
box-sizing: border-box;
|
152 |
}
|
153 |
-
|
154 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
155 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
|
157 |
/* Media queries */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
@media all and (max-width: 480px){
|
|
|
159 |
#sb_instagram.sbi_col_3 #sbi_images .sbi_item,
|
160 |
#sb_instagram.sbi_col_4 #sbi_images .sbi_item,
|
161 |
#sb_instagram.sbi_col_5 #sbi_images .sbi_item,
|
@@ -164,6 +310,6 @@
|
|
164 |
#sb_instagram.sbi_col_8 #sbi_images .sbi_item,
|
165 |
#sb_instagram.sbi_col_9 #sbi_images .sbi_item,
|
166 |
#sb_instagram.sbi_col_10 #sbi_images .sbi_item{
|
167 |
-
width:
|
168 |
}
|
169 |
}
|
4 |
|
5 |
/* Feed container */
|
6 |
#sb_instagram {
|
|
|
7 |
width: 100%;
|
8 |
margin: 0 auto;
|
9 |
padding: 0;
|
72 |
#sb_instagram .sbi_photo{
|
73 |
display: block;
|
74 |
}
|
75 |
+
#sb_instagram a,
|
76 |
+
#sb_instagram a:hover,
|
77 |
+
#sb_instagram a:focus,
|
78 |
+
#sb_instagram a:active{
|
79 |
+
outline: none;
|
80 |
+
}
|
81 |
#sb_instagram img{
|
82 |
display: block;
|
83 |
padding: 0 !important;
|
123 |
display: block;
|
124 |
}
|
125 |
|
126 |
+
/* Loader */
|
127 |
+
#sb_instagram .sbi_loader{
|
128 |
+
position: relative;
|
129 |
+
left: 50%;
|
130 |
+
width: 16px;
|
131 |
+
height: 16px;
|
132 |
+
margin: 10px 0 10px -8px;
|
133 |
+
background: url('../img/loader.png') no-repeat;
|
134 |
+
}
|
135 |
+
|
136 |
+
/* HEADER */
|
137 |
+
#sb_instagram .sb_instagram_header{
|
138 |
+
float: left;
|
139 |
+
clear: both;
|
140 |
+
margin: 0 0 15px 0;
|
141 |
+
padding: 0;
|
142 |
+
line-height: 1.2;
|
143 |
+
width: 100%;
|
144 |
+
}
|
145 |
+
#sb_instagram .sb_instagram_header a{
|
146 |
+
float: left;
|
147 |
+
display: block;
|
148 |
+
/*width: 100%;*/
|
149 |
+
min-width: 100%\9;
|
150 |
+
}
|
151 |
+
/* Header profile pic */
|
152 |
+
#sb_instagram .sbi_header_img{
|
153 |
+
float: left;
|
154 |
+
position: relative;
|
155 |
+
width: 50px;
|
156 |
+
margin: 0 0 0 -100% !important;
|
157 |
+
overflow: hidden;
|
158 |
+
|
159 |
+
-moz-border-radius: 40px;
|
160 |
+
-webkit-border-radius: 40px;
|
161 |
+
border-radius: 40px;
|
162 |
+
}
|
163 |
+
#sb_instagram .sbi_header_img img{
|
164 |
+
float: left;
|
165 |
+
margin: 0 !important;
|
166 |
+
padding: 0 !important;
|
167 |
+
border: none !important;
|
168 |
+
}
|
169 |
+
/* Profile pic hover */
|
170 |
+
#sb_instagram .sbi_header_img_hover{
|
171 |
display: none;
|
172 |
+
position: absolute;
|
173 |
+
width: 100%;
|
174 |
+
top: 0;
|
175 |
+
bottom: 0;
|
176 |
+
left: 0;
|
177 |
+
text-align: center;
|
178 |
+
color: #fff;
|
179 |
+
background: rgba(0,0,0,0.75);
|
180 |
+
}
|
181 |
+
#sb_instagram .sbi_header_img_hover .fa{
|
182 |
+
position: absolute;
|
183 |
+
top: 50%;
|
184 |
+
margin-top: -10px;
|
185 |
+
margin-left: -8px;
|
186 |
+
font-size: 20px;
|
187 |
+
}
|
188 |
+
/* Header text */
|
189 |
+
#sb_instagram .sbi_header_text{
|
190 |
+
float: left;
|
191 |
+
width: 100%;
|
192 |
+
padding-top: 2px;
|
193 |
+
}
|
194 |
+
#sb_instagram .sb_instagram_header a{
|
195 |
+
text-decoration: none;
|
196 |
+
}
|
197 |
+
#sb_instagram .sbi_header_text *{
|
198 |
+
float: left;
|
199 |
+
clear: both;
|
200 |
+
width: auto;
|
201 |
+
margin: 0 0 0 60px !important;
|
202 |
+
padding: 0 !important;
|
203 |
+
}
|
204 |
+
#sb_instagram .sb_instagram_header h3{
|
205 |
+
font-size: 16px;
|
206 |
+
margin-bottom: -5px !important;
|
207 |
+
}
|
208 |
+
#sb_instagram .sb_instagram_header p{
|
209 |
+
font-size: 13px;
|
210 |
+
line-height: 1.3;
|
211 |
+
}
|
212 |
+
#sb_instagram .sb_instagram_header h3.sbi_no_bio{
|
213 |
+
padding-top: 9px !important;
|
214 |
+
}
|
215 |
+
|
216 |
+
|
217 |
+
/* Buttons */
|
218 |
+
#sb_instagram #sbi_load{
|
219 |
float: left;
|
220 |
clear: both;
|
221 |
width: 100%;
|
222 |
text-align: center;
|
223 |
}
|
224 |
+
#sb_instagram #sbi_load .sbi_load_btn,
|
225 |
+
#sb_instagram .sbi_follow_btn a{
|
226 |
display: -moz-inline-stack;
|
227 |
display: inline-block;
|
228 |
vertical-align: top;
|
229 |
zoom: 1;
|
230 |
*display: inline;
|
231 |
|
232 |
+
padding: 7px 14px;
|
233 |
+
margin: 5px auto 0 auto;
|
234 |
background: #333;
|
235 |
color: #eee;
|
236 |
border: none;
|
237 |
color: #fff;
|
238 |
text-decoration: none;
|
239 |
font-size: 13px;
|
240 |
+
line-height: 1.5;
|
241 |
|
242 |
-moz-border-radius: 4px;
|
243 |
-webkit-border-radius: 4px;
|
247 |
-moz-box-sizing: border-box;
|
248 |
box-sizing: border-box;
|
249 |
}
|
250 |
+
/* Follow button */
|
251 |
+
#sb_instagram .sbi_follow_btn{
|
252 |
+
display: -moz-inline-stack;
|
253 |
+
display: inline-block;
|
254 |
+
vertical-align: top;
|
255 |
+
zoom: 1;
|
256 |
+
*display: inline;
|
257 |
+
text-align: center;
|
258 |
+
}
|
259 |
+
#sb_instagram .sbi_follow_btn.sbi_top{
|
260 |
+
display: block;
|
261 |
+
margin-bottom: 5px;
|
262 |
}
|
263 |
+
#sb_instagram .sbi_follow_btn a{
|
264 |
+
background: #517fa4;
|
265 |
+
color: #fff;
|
266 |
+
}
|
267 |
+
#sb_instagram .sbi_follow_btn a:hover,
|
268 |
+
#sb_instagram .sbi_follow_btn a:focus,
|
269 |
+
#sb_instagram #sbi_load .sbi_load_btn:hover,
|
270 |
+
#sb_instagram #sbi_load .sbi_load_btn:focus{
|
271 |
+
filter: alpha(opacity=85);
|
272 |
+
opacity: 0.85;
|
273 |
+
}
|
274 |
+
#sb_instagram #sbi_load .fa,
|
275 |
+
#sb_instagram .sbi_follow_btn .fa{
|
276 |
+
margin-bottom: -1px;
|
277 |
+
margin-right: 7px;
|
278 |
+
font-size: 15px;
|
279 |
+
}
|
280 |
+
#sb_instagram #sbi_load .sbi_follow_btn{
|
281 |
+
margin-left: 5px;
|
282 |
+
}
|
283 |
+
|
284 |
+
|
285 |
|
286 |
/* Media queries */
|
287 |
+
@media all and (max-width: 640px){
|
288 |
+
/* Make 3-6 cols into 2 col */
|
289 |
+
#sb_instagram.sbi_col_3 #sbi_images .sbi_item,
|
290 |
+
#sb_instagram.sbi_col_4 #sbi_images .sbi_item,
|
291 |
+
#sb_instagram.sbi_col_5 #sbi_images .sbi_item,
|
292 |
+
#sb_instagram.sbi_col_6 #sbi_images .sbi_item{
|
293 |
+
width: 50%;
|
294 |
+
}
|
295 |
+
/* Make 7-10 cols into 4 col */
|
296 |
+
#sb_instagram.sbi_col_7 #sbi_images .sbi_item,
|
297 |
+
#sb_instagram.sbi_col_8 #sbi_images .sbi_item,
|
298 |
+
#sb_instagram.sbi_col_9 #sbi_images .sbi_item,
|
299 |
+
#sb_instagram.sbi_col_10 #sbi_images .sbi_item{
|
300 |
+
width: 25%;
|
301 |
+
}
|
302 |
+
}
|
303 |
@media all and (max-width: 480px){
|
304 |
+
/* Make all cols into 1 col */
|
305 |
#sb_instagram.sbi_col_3 #sbi_images .sbi_item,
|
306 |
#sb_instagram.sbi_col_4 #sbi_images .sbi_item,
|
307 |
#sb_instagram.sbi_col_5 #sbi_images .sbi_item,
|
310 |
#sb_instagram.sbi_col_8 #sbi_images .sbi_item,
|
311 |
#sb_instagram.sbi_col_9 #sbi_images .sbi_item,
|
312 |
#sb_instagram.sbi_col_10 #sbi_images .sbi_item{
|
313 |
+
width: 100%;
|
314 |
}
|
315 |
}
|
img/instagram-pro-promo.png
CHANGED
Binary file
|
img/loader.png
ADDED
Binary file
|
instagram-feed-admin.php
CHANGED
@@ -36,7 +36,7 @@ function sb_instagram_settings_page() {
|
|
36 |
'sb_instagram_height' => '',
|
37 |
'sb_instagram_num' => '20',
|
38 |
'sb_instagram_height_unit' => '',
|
39 |
-
'sb_instagram_cols' => '',
|
40 |
'sb_instagram_image_padding' => '5',
|
41 |
'sb_instagram_image_padding_unit' => 'px',
|
42 |
'sb_instagram_sort' => 'none',
|
@@ -44,7 +44,16 @@ function sb_instagram_settings_page() {
|
|
44 |
'sb_instagram_show_btn' => true,
|
45 |
'sb_instagram_btn_background' => '',
|
46 |
'sb_instagram_btn_text_color' => '',
|
47 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
//Misc
|
49 |
'sb_instagram_custom_css' => '',
|
50 |
'sb_instagram_custom_js' => ''
|
@@ -70,7 +79,16 @@ function sb_instagram_settings_page() {
|
|
70 |
$sb_instagram_show_btn = $options[ 'sb_instagram_show_btn' ];
|
71 |
$sb_instagram_btn_background = $options[ 'sb_instagram_btn_background' ];
|
72 |
$sb_instagram_btn_text_color = $options[ 'sb_instagram_btn_text_color' ];
|
|
|
73 |
$sb_instagram_image_res = $options[ 'sb_instagram_image_res' ];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
//Misc
|
75 |
$sb_instagram_custom_css = $options[ 'sb_instagram_custom_css' ];
|
76 |
$sb_instagram_custom_js = $options[ 'sb_instagram_custom_js' ];
|
@@ -102,7 +120,16 @@ function sb_instagram_settings_page() {
|
|
102 |
isset($_POST[ 'sb_instagram_show_btn' ]) ? $sb_instagram_show_btn = $_POST[ 'sb_instagram_show_btn' ] : $sb_instagram_show_btn = '';
|
103 |
$sb_instagram_btn_background = $_POST[ 'sb_instagram_btn_background' ];
|
104 |
$sb_instagram_btn_text_color = $_POST[ 'sb_instagram_btn_text_color' ];
|
|
|
105 |
$sb_instagram_image_res = $_POST[ 'sb_instagram_image_res' ];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
//Misc
|
107 |
$sb_instagram_custom_css = $_POST[ 'sb_instagram_custom_css' ];
|
108 |
$sb_instagram_custom_js = $_POST[ 'sb_instagram_custom_js' ];
|
@@ -120,7 +147,16 @@ function sb_instagram_settings_page() {
|
|
120 |
$options[ 'sb_instagram_show_btn' ] = $sb_instagram_show_btn;
|
121 |
$options[ 'sb_instagram_btn_background' ] = $sb_instagram_btn_background;
|
122 |
$options[ 'sb_instagram_btn_text_color' ] = $sb_instagram_btn_text_color;
|
|
|
123 |
$options[ 'sb_instagram_image_res' ] = $sb_instagram_image_res;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
//Misc
|
125 |
$options[ 'sb_instagram_custom_css' ] = $sb_instagram_custom_css;
|
126 |
$options[ 'sb_instagram_custom_js' ] = $sb_instagram_custom_js;
|
@@ -159,15 +195,15 @@ function sb_instagram_settings_page() {
|
|
159 |
<h3><?php _e('Configure'); ?></h3>
|
160 |
|
161 |
<div id="sbi_config">
|
162 |
-
<a href="https://instagram.com/oauth/authorize/?client_id=
|
163 |
</div>
|
164 |
|
165 |
<tr valign="top">
|
166 |
<th scope="row"><label><?php _e('Access Token'); ?></label></th>
|
167 |
<td>
|
168 |
-
<input name="sb_instagram_at" id="sb_instagram_at" type="text" value="<?php esc_attr_e( $sb_instagram_at ); ?>" size="
|
169 |
<a class="sbi_tooltip_link" href="JavaScript:void(0);"><?php _e("What is this?"); ?></a>
|
170 |
-
<p class="sbi_tooltip"><?php _e("In order to display your photos you need an Access Token from Instagram. To get yours, simply click the button above and log into Instagram. You can also use the button on <a href='
|
171 |
</td>
|
172 |
</tr>
|
173 |
|
@@ -179,19 +215,21 @@ function sb_instagram_settings_page() {
|
|
179 |
<span>
|
180 |
<?php $sb_instagram_type = 'user'; ?>
|
181 |
<input type="radio" name="sb_instagram_type" id="sb_instagram_type_user" value="user" <?php if($sb_instagram_type == "user") echo "checked"; ?> />
|
182 |
-
<label class="sbi_radio_label" for="sb_instagram_type_user">User ID:</label>
|
183 |
<input name="sb_instagram_user_id" id="sb_instagram_user_id" type="text" value="<?php esc_attr_e( $sb_instagram_user_id ); ?>" size="25" />
|
184 |
<a class="sbi_tooltip_link" href="JavaScript:void(0);"><?php _e("What is this?"); ?></a>
|
185 |
-
<p class="sbi_tooltip"><?php _e("
|
186 |
</span>
|
187 |
|
188 |
<span class="sbi_pro">
|
189 |
<input disabled type="radio" name="sb_instagram_type" id="sb_instagram_type_hashtag" value="hashtag" <?php if($sb_instagram_type == "hashtag") echo "checked"; ?> />
|
190 |
<label class="sbi_radio_label" for="sb_instagram_type_hashtag">Hashtag:</label>
|
191 |
<input readonly type="text" size="25" />
|
192 |
-
<a class="sbi_tooltip_link sbi_pro" href="JavaScript:void(0);"><?php _e("What is this?"); ?></a><span class="sbi_note"
|
193 |
<p class="sbi_tooltip"><?php _e("Display posts from a specific hashtag instead of from a user"); ?></p>
|
194 |
</span>
|
|
|
|
|
195 |
|
196 |
</td>
|
197 |
</tr>
|
@@ -213,6 +251,7 @@ function sb_instagram_settings_page() {
|
|
213 |
|
214 |
<p><?php _e('Next Step: <a href="?page=sb-instagram-feed&tab=customize">Customize your Feed</a>'); ?></p>
|
215 |
|
|
|
216 |
|
217 |
|
218 |
<?php } // End Configure tab ?>
|
@@ -278,8 +317,7 @@ function sb_instagram_settings_page() {
|
|
278 |
<tr valign="top" class="sbi_pro">
|
279 |
<th scope="row"><label><?php _e("Enable Pop-up Lightbox"); ?></label></th>
|
280 |
<td>
|
281 |
-
<
|
282 |
-
<span class="sbi_note"><a href="http://smashballoon.com/instagram-feed/" target="_blank"><?php _e('Upgrade to Pro to enable the Pop-up Lightbox.'); ?></a></span>
|
283 |
</td>
|
284 |
</tr>
|
285 |
<tr valign="top">
|
@@ -287,6 +325,8 @@ function sb_instagram_settings_page() {
|
|
287 |
<td>
|
288 |
<input name="sb_instagram_num" type="text" value="<?php esc_attr_e( $sb_instagram_num ); ?>" size="4" />
|
289 |
<span class="sbi_note"><?php _e('Number of photos to show initially. Maximum of 33.'); ?></span>
|
|
|
|
|
290 |
</td>
|
291 |
</tr>
|
292 |
<tr valign="top">
|
@@ -313,11 +353,15 @@ function sb_instagram_settings_page() {
|
|
313 |
<td>
|
314 |
|
315 |
<select name="sb_instagram_image_res">
|
316 |
-
<option value="
|
317 |
-
<option value="medium" <?php if($sb_instagram_image_res == "medium") echo 'selected="selected"' ?> ><?php _e('Medium (306x306)'); ?></option>
|
318 |
<option value="thumb" <?php if($sb_instagram_image_res == "thumb") echo 'selected="selected"' ?> ><?php _e('Thumbnail (150x150)'); ?></option>
|
|
|
|
|
319 |
</select>
|
320 |
|
|
|
|
|
|
|
321 |
</td>
|
322 |
</tr>
|
323 |
<tr valign="top">
|
@@ -330,11 +374,45 @@ function sb_instagram_settings_page() {
|
|
330 |
</select>
|
331 |
</td>
|
332 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
333 |
</tbody>
|
334 |
</table>
|
335 |
|
336 |
<?php submit_button(); ?>
|
337 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
338 |
<hr />
|
339 |
<h3><?php _e("'Load More' Button"); ?></h3>
|
340 |
<table class="form-table">
|
@@ -357,23 +435,58 @@ function sb_instagram_settings_page() {
|
|
357 |
<input name="sb_instagram_btn_text_color" type="text" value="<?php esc_attr_e( $sb_instagram_btn_text_color ); ?>" class="sbi_colorpick" />
|
358 |
</td>
|
359 |
</tr>
|
360 |
-
|
|
|
|
|
|
|
|
|
|
|
361 |
</tbody>
|
362 |
</table>
|
363 |
|
364 |
-
|
365 |
-
<h3><?php _e("Caption"); ?></h3>
|
366 |
-
<p style="padding-bottom: 18px;"><a href="http://smashballoon.com/instagram-feed/" target="_blank">Upgrade to Pro to enable Photo Captions</a></p>
|
367 |
|
368 |
<hr />
|
369 |
-
<h3><?php _e("
|
370 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
371 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
372 |
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
377 |
|
378 |
<hr />
|
379 |
<h3><?php _e('Misc'); ?></h3>
|
@@ -409,12 +522,14 @@ function sb_instagram_settings_page() {
|
|
409 |
|
410 |
<p><?php _e('Next Step: <a href="?page=sb-instagram-feed&tab=display">Display your Feed</a>'); ?></p>
|
411 |
|
|
|
|
|
412 |
|
413 |
<?php } //End Customize tab ?>
|
414 |
|
415 |
|
416 |
|
417 |
-
<?php if( $sbi_active_tab == 'display' ) { //Start
|
418 |
|
419 |
<h3><?php _e('Display your Feed'); ?></h3>
|
420 |
<p><?php _e("Copy and paste the following shortcode directly into the page, post or widget where you'd like the feed to show up:"); ?></p>
|
@@ -422,6 +537,11 @@ function sb_instagram_settings_page() {
|
|
422 |
|
423 |
<p><?php _e("If you'd like to display multiple feeds then you can set different settings directly in the shortcode like so:"); ?>
|
424 |
<code>[instagram-feed num=9 cols=3]</code></p>
|
|
|
|
|
|
|
|
|
|
|
425 |
<p><?php _e("See the table below for a full list of available shortcode options:"); ?></p>
|
426 |
|
427 |
<p><span class="sbi_table_key"></span><?php _e('Pro version only'); ?></p>
|
@@ -442,13 +562,13 @@ function sb_instagram_settings_page() {
|
|
442 |
</tr>
|
443 |
<tr>
|
444 |
<td>id</td>
|
445 |
-
<td><?php _e('An Instagram User ID'); ?></td>
|
446 |
-
<td><code>[instagram-feed id=1234567]</code></td>
|
447 |
</tr>
|
448 |
<tr class="sbi_pro">
|
449 |
<td>hashtag</td>
|
450 |
-
<td><?php _e('
|
451 |
-
<td><code>[instagram-feed hashtag=awesome]</code></td>
|
452 |
</tr>
|
453 |
|
454 |
<tr class="sbi_table_header"><td colspan=3><?php _e("Customize Options"); ?></td></tr>
|
@@ -496,7 +616,7 @@ function sb_instagram_settings_page() {
|
|
496 |
</tr>
|
497 |
<tr>
|
498 |
<td>imageres</td>
|
499 |
-
<td><?php _e("The resolution/size of the photos. 'full', 'medium' or 'thumb'."); ?></td>
|
500 |
<td><code>[instagram-feed imageres=full]</code></td>
|
501 |
</tr>
|
502 |
<tr>
|
@@ -509,6 +629,28 @@ function sb_instagram_settings_page() {
|
|
509 |
<td><?php _e("The unit of the padding. 'px' or '%'"); ?></td>
|
510 |
<td><code>[instagram-feed imagepaddingunit=px]</code></td>
|
511 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
512 |
|
513 |
<tr class="sbi_table_header"><td colspan=3><?php _e("'Load More' Button Options"); ?></td></tr>
|
514 |
<tr>
|
@@ -526,8 +668,35 @@ function sb_instagram_settings_page() {
|
|
526 |
<td><?php _e("The text color of the button. Any hex color code."); ?></td>
|
527 |
<td><code>[instagram-feed buttontextcolor=#fff]</code></td>
|
528 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
529 |
|
530 |
-
<tr class="sbi_table_header"><td colspan=3><?php _e("
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
531 |
<tr class="sbi_pro">
|
532 |
<td>showcaption</td>
|
533 |
<td><?php _e("Whether to show the photo caption. 'true' or 'false'."); ?></td>
|
@@ -566,26 +735,16 @@ function sb_instagram_settings_page() {
|
|
566 |
<td><code>[instagram-feed likessize=14]</code></td>
|
567 |
</tr>
|
568 |
|
569 |
-
<tr class="sbi_table_header"><td colspan=3><?php _e("Translate / Custom Text Options"); ?></td></tr>
|
570 |
-
<tr class="sbi_pro">
|
571 |
-
<td>fullsizetext</td>
|
572 |
-
<td><?php _e("Change the 'Full-size' text"); ?></td>
|
573 |
-
<td><code>[instagram-feed fullsizetext='View full-size']</code></td>
|
574 |
-
</tr>
|
575 |
-
<tr class="sbi_pro">
|
576 |
-
<td>instagramtext</td>
|
577 |
-
<td><?php _e("Change the 'Instagram' text"); ?></td>
|
578 |
-
<td><code>[instagram-feed instagramtext='View on Instagram']</code></td>
|
579 |
-
</tr>
|
580 |
-
|
581 |
</tbody>
|
582 |
</table>
|
583 |
|
|
|
|
|
584 |
<?php } //End Display tab ?>
|
585 |
|
586 |
<hr />
|
587 |
|
588 |
-
<a href="
|
589 |
<img src="<?php echo plugins_url( 'img/instagram-pro-promo.png' , __FILE__ ) ?>" alt="Instagram Feed Pro">
|
590 |
</a>
|
591 |
|
@@ -594,14 +753,14 @@ function sb_instagram_settings_page() {
|
|
594 |
<?php } //End Settings page
|
595 |
|
596 |
function sb_instagram_admin_style() {
|
597 |
-
wp_register_style( 'sb_instagram_admin_css', plugin_dir_url( __FILE__ ) . 'css/sb-instagram-admin.css', false, '1.0.0' );
|
598 |
wp_enqueue_style( 'sb_instagram_admin_css' );
|
599 |
wp_enqueue_style( 'wp-color-picker' );
|
600 |
}
|
601 |
add_action( 'admin_enqueue_scripts', 'sb_instagram_admin_style' );
|
602 |
|
603 |
function sb_instagram_admin_scripts() {
|
604 |
-
wp_enqueue_script( 'sb_instagram_admin_js', plugin_dir_url( __FILE__ ) . 'js/sb-instagram-admin.js' );
|
605 |
if( !wp_script_is('jquery-ui-draggable') ) {
|
606 |
wp_enqueue_script(
|
607 |
array(
|
@@ -620,5 +779,16 @@ function sb_instagram_admin_scripts() {
|
|
620 |
}
|
621 |
add_action( 'admin_enqueue_scripts', 'sb_instagram_admin_scripts' );
|
622 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
623 |
|
624 |
?>
|
36 |
'sb_instagram_height' => '',
|
37 |
'sb_instagram_num' => '20',
|
38 |
'sb_instagram_height_unit' => '',
|
39 |
+
'sb_instagram_cols' => '4',
|
40 |
'sb_instagram_image_padding' => '5',
|
41 |
'sb_instagram_image_padding_unit' => 'px',
|
42 |
'sb_instagram_sort' => 'none',
|
44 |
'sb_instagram_show_btn' => true,
|
45 |
'sb_instagram_btn_background' => '',
|
46 |
'sb_instagram_btn_text_color' => '',
|
47 |
+
'sb_instagram_btn_text' => 'Load More...',
|
48 |
+
'sb_instagram_image_res' => 'auto',
|
49 |
+
//Header
|
50 |
+
'sb_instagram_show_header' => false,
|
51 |
+
'sb_instagram_header_color' => '',
|
52 |
+
//Follow button
|
53 |
+
'sb_instagram_show_follow_btn' => false,
|
54 |
+
'sb_instagram_folow_btn_background' => '',
|
55 |
+
'sb_instagram_follow_btn_text_color' => '',
|
56 |
+
'sb_instagram_follow_btn_text' => 'Follow on Instagram',
|
57 |
//Misc
|
58 |
'sb_instagram_custom_css' => '',
|
59 |
'sb_instagram_custom_js' => ''
|
79 |
$sb_instagram_show_btn = $options[ 'sb_instagram_show_btn' ];
|
80 |
$sb_instagram_btn_background = $options[ 'sb_instagram_btn_background' ];
|
81 |
$sb_instagram_btn_text_color = $options[ 'sb_instagram_btn_text_color' ];
|
82 |
+
$sb_instagram_btn_text = $options[ 'sb_instagram_btn_text' ];
|
83 |
$sb_instagram_image_res = $options[ 'sb_instagram_image_res' ];
|
84 |
+
//Header
|
85 |
+
$sb_instagram_show_header = $options[ 'sb_instagram_show_header' ];
|
86 |
+
$sb_instagram_header_color = $options[ 'sb_instagram_header_color' ];
|
87 |
+
//Follow button
|
88 |
+
$sb_instagram_show_follow_btn = $options[ 'sb_instagram_show_follow_btn' ];
|
89 |
+
$sb_instagram_folow_btn_background = $options[ 'sb_instagram_folow_btn_background' ];
|
90 |
+
$sb_instagram_follow_btn_text_color = $options[ 'sb_instagram_follow_btn_text_color' ];
|
91 |
+
$sb_instagram_follow_btn_text = $options[ 'sb_instagram_follow_btn_text' ];
|
92 |
//Misc
|
93 |
$sb_instagram_custom_css = $options[ 'sb_instagram_custom_css' ];
|
94 |
$sb_instagram_custom_js = $options[ 'sb_instagram_custom_js' ];
|
120 |
isset($_POST[ 'sb_instagram_show_btn' ]) ? $sb_instagram_show_btn = $_POST[ 'sb_instagram_show_btn' ] : $sb_instagram_show_btn = '';
|
121 |
$sb_instagram_btn_background = $_POST[ 'sb_instagram_btn_background' ];
|
122 |
$sb_instagram_btn_text_color = $_POST[ 'sb_instagram_btn_text_color' ];
|
123 |
+
$sb_instagram_btn_text = $_POST[ 'sb_instagram_btn_text' ];
|
124 |
$sb_instagram_image_res = $_POST[ 'sb_instagram_image_res' ];
|
125 |
+
//Header
|
126 |
+
isset($_POST[ 'sb_instagram_show_header' ]) ? $sb_instagram_show_header = $_POST[ 'sb_instagram_show_header' ] : $sb_instagram_show_header = '';
|
127 |
+
$sb_instagram_header_color = $_POST[ 'sb_instagram_header_color' ];
|
128 |
+
//Follow button
|
129 |
+
isset($_POST[ 'sb_instagram_show_follow_btn' ]) ? $sb_instagram_show_follow_btn = $_POST[ 'sb_instagram_show_follow_btn' ] : $sb_instagram_show_follow_btn = '';
|
130 |
+
$sb_instagram_folow_btn_background = $_POST[ 'sb_instagram_folow_btn_background' ];
|
131 |
+
$sb_instagram_follow_btn_text_color = $_POST[ 'sb_instagram_follow_btn_text_color' ];
|
132 |
+
$sb_instagram_follow_btn_text = $_POST[ 'sb_instagram_follow_btn_text' ];
|
133 |
//Misc
|
134 |
$sb_instagram_custom_css = $_POST[ 'sb_instagram_custom_css' ];
|
135 |
$sb_instagram_custom_js = $_POST[ 'sb_instagram_custom_js' ];
|
147 |
$options[ 'sb_instagram_show_btn' ] = $sb_instagram_show_btn;
|
148 |
$options[ 'sb_instagram_btn_background' ] = $sb_instagram_btn_background;
|
149 |
$options[ 'sb_instagram_btn_text_color' ] = $sb_instagram_btn_text_color;
|
150 |
+
$options[ 'sb_instagram_btn_text' ] = $sb_instagram_btn_text;
|
151 |
$options[ 'sb_instagram_image_res' ] = $sb_instagram_image_res;
|
152 |
+
//Header
|
153 |
+
$options[ 'sb_instagram_show_header' ] = $sb_instagram_show_header;
|
154 |
+
$options[ 'sb_instagram_header_color' ] = $sb_instagram_header_color;
|
155 |
+
//Follow button
|
156 |
+
$options[ 'sb_instagram_show_follow_btn' ] = $sb_instagram_show_follow_btn;
|
157 |
+
$options[ 'sb_instagram_folow_btn_background' ] = $sb_instagram_folow_btn_background;
|
158 |
+
$options[ 'sb_instagram_follow_btn_text_color' ] = $sb_instagram_follow_btn_text_color;
|
159 |
+
$options[ 'sb_instagram_follow_btn_text' ] = $sb_instagram_follow_btn_text;
|
160 |
//Misc
|
161 |
$options[ 'sb_instagram_custom_css' ] = $sb_instagram_custom_css;
|
162 |
$options[ 'sb_instagram_custom_js' ] = $sb_instagram_custom_js;
|
195 |
<h3><?php _e('Configure'); ?></h3>
|
196 |
|
197 |
<div id="sbi_config">
|
198 |
+
<a href="https://instagram.com/oauth/authorize/?client_id=97584dabe06548f99b54d318f8db509d&redirect_uri=https://smashballoon.com/instagram-feed/instagram-token-plugin/?return_uri=<?php echo admin_url('admin.php?page=sb-instagram-feed'); ?>&response_type=token" class="sbi_admin_btn"><?php _e('Log in and get my Access Token and User ID'); ?></a>
|
199 |
</div>
|
200 |
|
201 |
<tr valign="top">
|
202 |
<th scope="row"><label><?php _e('Access Token'); ?></label></th>
|
203 |
<td>
|
204 |
+
<input name="sb_instagram_at" id="sb_instagram_at" type="text" value="<?php esc_attr_e( $sb_instagram_at ); ?>" size="60" placeholder="Click button above to get your Access Token" />
|
205 |
<a class="sbi_tooltip_link" href="JavaScript:void(0);"><?php _e("What is this?"); ?></a>
|
206 |
+
<p class="sbi_tooltip"><?php _e("In order to display your photos you need an Access Token from Instagram. To get yours, simply click the button above and log into Instagram. You can also use the button on <a href='https://smashballoon.com/instagram-feed/token/' target='_blank'>this page</a>."); ?></p>
|
207 |
</td>
|
208 |
</tr>
|
209 |
|
215 |
<span>
|
216 |
<?php $sb_instagram_type = 'user'; ?>
|
217 |
<input type="radio" name="sb_instagram_type" id="sb_instagram_type_user" value="user" <?php if($sb_instagram_type == "user") echo "checked"; ?> />
|
218 |
+
<label class="sbi_radio_label" for="sb_instagram_type_user">User ID(s):</label>
|
219 |
<input name="sb_instagram_user_id" id="sb_instagram_user_id" type="text" value="<?php esc_attr_e( $sb_instagram_user_id ); ?>" size="25" />
|
220 |
<a class="sbi_tooltip_link" href="JavaScript:void(0);"><?php _e("What is this?"); ?></a>
|
221 |
+
<p class="sbi_tooltip"><?php _e("These are the IDs of the Instagram accounts you want to display photos from. To get your ID simply click on the button above and log into Instagram.<br /><br />You can also display photos from other peoples Instagram accounts. To find their User ID you can use <a href='http://jelled.com/instagram/lookup-user-id' target='_blank'>this tool</a>. You can separate multiple IDs using commas."); ?></p><br />
|
222 |
</span>
|
223 |
|
224 |
<span class="sbi_pro">
|
225 |
<input disabled type="radio" name="sb_instagram_type" id="sb_instagram_type_hashtag" value="hashtag" <?php if($sb_instagram_type == "hashtag") echo "checked"; ?> />
|
226 |
<label class="sbi_radio_label" for="sb_instagram_type_hashtag">Hashtag:</label>
|
227 |
<input readonly type="text" size="25" />
|
228 |
+
<a class="sbi_tooltip_link sbi_pro" href="JavaScript:void(0);"><?php _e("What is this?"); ?></a><span class="sbi_note"> - <a href="https://smashballoon.com/instagram-feed/" target="_blank">Upgrade to Pro to show posts by Hashtag</a></span>
|
229 |
<p class="sbi_tooltip"><?php _e("Display posts from a specific hashtag instead of from a user"); ?></p>
|
230 |
</span>
|
231 |
+
<br />
|
232 |
+
<span class="sbi_note" style="margin: 10px 0 0 0; display: block;"><?php _e('Separate multiple IDs or hashtags using commas'); ?></span>
|
233 |
|
234 |
</td>
|
235 |
</tr>
|
251 |
|
252 |
<p><?php _e('Next Step: <a href="?page=sb-instagram-feed&tab=customize">Customize your Feed</a>'); ?></p>
|
253 |
|
254 |
+
<p><?php _e('Need help setting up the plugin? Check out our <a href="http://smashballoon.com/instagram-feed/free/" target="_blank">setup directions</a>'); ?></p>
|
255 |
|
256 |
|
257 |
<?php } // End Configure tab ?>
|
317 |
<tr valign="top" class="sbi_pro">
|
318 |
<th scope="row"><label><?php _e("Enable Pop-up Lightbox"); ?></label></th>
|
319 |
<td>
|
320 |
+
<span class="sbi_note"><a href="https://smashballoon.com/instagram-feed/" target="_blank"><?php _e('Upgrade to Pro to enable the Pop-up Lightbox.'); ?></a></span>
|
|
|
321 |
</td>
|
322 |
</tr>
|
323 |
<tr valign="top">
|
325 |
<td>
|
326 |
<input name="sb_instagram_num" type="text" value="<?php esc_attr_e( $sb_instagram_num ); ?>" size="4" />
|
327 |
<span class="sbi_note"><?php _e('Number of photos to show initially. Maximum of 33.'); ?></span>
|
328 |
+
<a class="sbi_tooltip_link" href="JavaScript:void(0);"><?php _e("Using multiple IDs or hashtags?"); ?></a>
|
329 |
+
<p class="sbi_tooltip"><?php _e("If you're displaying photos from multiple User IDs or hashtags then this is the number of photos which will be displayed from each."); ?></p>
|
330 |
</td>
|
331 |
</tr>
|
332 |
<tr valign="top">
|
353 |
<td>
|
354 |
|
355 |
<select name="sb_instagram_image_res">
|
356 |
+
<option value="auto" <?php if($sb_instagram_image_res == "auto") echo 'selected="selected"' ?> ><?php _e('Auto-detect (recommended)'); ?></option>
|
|
|
357 |
<option value="thumb" <?php if($sb_instagram_image_res == "thumb") echo 'selected="selected"' ?> ><?php _e('Thumbnail (150x150)'); ?></option>
|
358 |
+
<option value="medium" <?php if($sb_instagram_image_res == "medium") echo 'selected="selected"' ?> ><?php _e('Medium (306x306)'); ?></option>
|
359 |
+
<option value="full" <?php if($sb_instagram_image_res == "full") echo 'selected="selected"' ?> ><?php _e('Full size (640x640)'); ?></option>
|
360 |
</select>
|
361 |
|
362 |
+
<a class="sbi_tooltip_link" href="JavaScript:void(0);"><?php _e("What does Auto-detect mean?"); ?></a>
|
363 |
+
<p class="sbi_tooltip"><?php _e("Auto-detect means that the plugin automatically sets the image resolution based on the size of your feed."); ?></p>
|
364 |
+
|
365 |
</td>
|
366 |
</tr>
|
367 |
<tr valign="top">
|
374 |
</select>
|
375 |
</td>
|
376 |
</tr>
|
377 |
+
|
378 |
+
<tr valign="top" class="sbi_pro">
|
379 |
+
<th scope="row"><label><?php _e('Hide Photos'); ?></label></th>
|
380 |
+
<td>
|
381 |
+
<span class="sbi_note"><a href="https://smashballoon.com/instagram-feed/" target="_blank"><?php _e('Upgrade to Pro to enable this feature.'); ?></a></span>
|
382 |
+
</td>
|
383 |
+
</tr>
|
384 |
</tbody>
|
385 |
</table>
|
386 |
|
387 |
<?php submit_button(); ?>
|
388 |
|
389 |
+
<hr />
|
390 |
+
<h3><?php _e("Header"); ?></h3>
|
391 |
+
<table class="form-table">
|
392 |
+
<tbody>
|
393 |
+
<tr valign="top">
|
394 |
+
<th scope="row"><label><?php _e("Show the Header"); ?></label></th>
|
395 |
+
<td>
|
396 |
+
<input type="checkbox" name="sb_instagram_show_header" id="sb_instagram_show_header" <?php if($sb_instagram_show_header == true) echo 'checked="checked"' ?> />
|
397 |
+
</td>
|
398 |
+
</tr>
|
399 |
+
<tr valign="top">
|
400 |
+
<th scope="row"><label><?php _e('Header Text Color'); ?></label></th>
|
401 |
+
<td>
|
402 |
+
<input name="sb_instagram_header_color" type="text" value="<?php esc_attr_e( $sb_instagram_header_color ); ?>" class="sbi_colorpick" />
|
403 |
+
</td>
|
404 |
+
</tr>
|
405 |
+
</tbody>
|
406 |
+
</table>
|
407 |
+
|
408 |
+
<hr />
|
409 |
+
<h3><?php _e("Caption"); ?></h3>
|
410 |
+
<p style="padding-bottom: 18px;"><a href="https://smashballoon.com/instagram-feed/" target="_blank">Upgrade to Pro to enable Photo Captions</a></p>
|
411 |
+
|
412 |
+
<hr />
|
413 |
+
<h3><?php _e("Likes & Comments"); ?></h3>
|
414 |
+
<p style="padding-bottom: 18px;"><a href="https://smashballoon.com/instagram-feed/" target="_blank">Upgrade to Pro to enable Likes & Comments</a></p>
|
415 |
+
|
416 |
<hr />
|
417 |
<h3><?php _e("'Load More' Button"); ?></h3>
|
418 |
<table class="form-table">
|
435 |
<input name="sb_instagram_btn_text_color" type="text" value="<?php esc_attr_e( $sb_instagram_btn_text_color ); ?>" class="sbi_colorpick" />
|
436 |
</td>
|
437 |
</tr>
|
438 |
+
<tr valign="top">
|
439 |
+
<th scope="row"><label><?php _e('Button Text'); ?></label></th>
|
440 |
+
<td>
|
441 |
+
<input name="sb_instagram_btn_text" type="text" value="<?php esc_attr_e( $sb_instagram_btn_text ); ?>" size="20" />
|
442 |
+
</td>
|
443 |
+
</tr>
|
444 |
</tbody>
|
445 |
</table>
|
446 |
|
447 |
+
<?php submit_button(); ?>
|
|
|
|
|
448 |
|
449 |
<hr />
|
450 |
+
<h3><?php _e("'Follow on Instagram' Button"); ?></h3>
|
451 |
+
<table class="form-table">
|
452 |
+
<tbody>
|
453 |
+
<tr valign="top">
|
454 |
+
<th scope="row"><label><?php _e("Show the Follow button"); ?></label></th>
|
455 |
+
<td>
|
456 |
+
<input type="checkbox" name="sb_instagram_show_follow_btn" id="sb_instagram_show_follow_btn" <?php if($sb_instagram_show_follow_btn == true) echo 'checked="checked"' ?> />
|
457 |
+
</td>
|
458 |
+
</tr>
|
459 |
|
460 |
+
<!-- <tr valign="top">
|
461 |
+
<th scope="row"><label><?php _e("Button Position"); ?></label></th>
|
462 |
+
<td>
|
463 |
+
<select name="sb_instagram_follow_btn_position">
|
464 |
+
<option value="top" <?php if($sb_instagram_follow_btn_position == "top") echo 'selected="selected"' ?> ><?php _e('Top'); ?></option>
|
465 |
+
<option value="bottom" <?php if($sb_instagram_follow_btn_position == "bottom") echo 'selected="selected"' ?> ><?php _e('Bottom'); ?></option>
|
466 |
+
</select>
|
467 |
+
</td>
|
468 |
+
</tr> -->
|
469 |
|
470 |
+
<tr valign="top">
|
471 |
+
<th scope="row"><label><?php _e('Button Background Color'); ?></label></th>
|
472 |
+
<td>
|
473 |
+
<input name="sb_instagram_folow_btn_background" type="text" value="<?php esc_attr_e( $sb_instagram_folow_btn_background ); ?>" class="sbi_colorpick" />
|
474 |
+
</td>
|
475 |
+
</tr>
|
476 |
+
<tr valign="top">
|
477 |
+
<th scope="row"><label><?php _e('Button Text Color'); ?></label></th>
|
478 |
+
<td>
|
479 |
+
<input name="sb_instagram_follow_btn_text_color" type="text" value="<?php esc_attr_e( $sb_instagram_follow_btn_text_color ); ?>" class="sbi_colorpick" />
|
480 |
+
</td>
|
481 |
+
</tr>
|
482 |
+
<tr valign="top">
|
483 |
+
<th scope="row"><label><?php _e('Button Text'); ?></label></th>
|
484 |
+
<td>
|
485 |
+
<input name="sb_instagram_follow_btn_text" type="text" value="<?php esc_attr_e( $sb_instagram_follow_btn_text ); ?>" size="30" />
|
486 |
+
</td>
|
487 |
+
</tr>
|
488 |
+
</tbody>
|
489 |
+
</table>
|
490 |
|
491 |
<hr />
|
492 |
<h3><?php _e('Misc'); ?></h3>
|
522 |
|
523 |
<p><?php _e('Next Step: <a href="?page=sb-instagram-feed&tab=display">Display your Feed</a>'); ?></p>
|
524 |
|
525 |
+
<p><?php _e('Need help setting up the plugin? Check out our <a href="http://smashballoon.com/instagram-feed/free/" target="_blank">setup directions</a>'); ?></p>
|
526 |
+
|
527 |
|
528 |
<?php } //End Customize tab ?>
|
529 |
|
530 |
|
531 |
|
532 |
+
<?php if( $sbi_active_tab == 'display' ) { //Start Display tab ?>
|
533 |
|
534 |
<h3><?php _e('Display your Feed'); ?></h3>
|
535 |
<p><?php _e("Copy and paste the following shortcode directly into the page, post or widget where you'd like the feed to show up:"); ?></p>
|
537 |
|
538 |
<p><?php _e("If you'd like to display multiple feeds then you can set different settings directly in the shortcode like so:"); ?>
|
539 |
<code>[instagram-feed num=9 cols=3]</code></p>
|
540 |
+
<p>You can display as many different feeds as you like, on either the same page or on different pages, by just using the shortcode options below. For example:<br />
|
541 |
+
<code>[instagram-feed]</code><br />
|
542 |
+
<code>[instagram-feed id="12986477"]</code><br />
|
543 |
+
<code>[instagram-feed id="12986477,13460080" num=4 cols=4 showfollow=false]</code>
|
544 |
+
</p>
|
545 |
<p><?php _e("See the table below for a full list of available shortcode options:"); ?></p>
|
546 |
|
547 |
<p><span class="sbi_table_key"></span><?php _e('Pro version only'); ?></p>
|
562 |
</tr>
|
563 |
<tr>
|
564 |
<td>id</td>
|
565 |
+
<td><?php _e('An Instagram User ID. Separate multiple IDs by commas.'); ?></td>
|
566 |
+
<td><code>[instagram-feed id="1234567"]</code></td>
|
567 |
</tr>
|
568 |
<tr class="sbi_pro">
|
569 |
<td>hashtag</td>
|
570 |
+
<td><?php _e('Any hashtag. Separate multiple IDs by commas.'); ?></td>
|
571 |
+
<td><code>[instagram-feed hashtag="#awesome"]</code></td>
|
572 |
</tr>
|
573 |
|
574 |
<tr class="sbi_table_header"><td colspan=3><?php _e("Customize Options"); ?></td></tr>
|
616 |
</tr>
|
617 |
<tr>
|
618 |
<td>imageres</td>
|
619 |
+
<td><?php _e("The resolution/size of the photos. 'auto', full', 'medium' or 'thumb'."); ?></td>
|
620 |
<td><code>[instagram-feed imageres=full]</code></td>
|
621 |
</tr>
|
622 |
<tr>
|
629 |
<td><?php _e("The unit of the padding. 'px' or '%'"); ?></td>
|
630 |
<td><code>[instagram-feed imagepaddingunit=px]</code></td>
|
631 |
</tr>
|
632 |
+
<tr class="sbi_pro">
|
633 |
+
<td>hovercolor</td>
|
634 |
+
<td><?php _e("The background color when hovering over a photo. Any hex color code."); ?></td>
|
635 |
+
<td><code>[instagram-feed hovercolor=#ff0000]</code></td>
|
636 |
+
</tr>
|
637 |
+
<tr class="sbi_pro">
|
638 |
+
<td>hovertextcolor</td>
|
639 |
+
<td><?php _e("The text/icon color when hovering over a photo. Any hex color code."); ?></td>
|
640 |
+
<td><code>[instagram-feed hovertextcolor=#fff]</code></td>
|
641 |
+
</tr>
|
642 |
+
|
643 |
+
<tr class="sbi_table_header"><td colspan=3><?php _e("Header Options"); ?></td></tr>
|
644 |
+
<tr>
|
645 |
+
<td>showheader</td>
|
646 |
+
<td><?php _e("Whether to show the feed Header. 'true' or 'false'."); ?></td>
|
647 |
+
<td><code>[instagram-feed showheader=false]</code></td>
|
648 |
+
</tr>
|
649 |
+
<tr>
|
650 |
+
<td>headercolor</td>
|
651 |
+
<td><?php _e("The color of the Header text. Any hex color code."); ?></td>
|
652 |
+
<td><code>[instagram-feed headercolor=#333]</code></td>
|
653 |
+
</tr>
|
654 |
|
655 |
<tr class="sbi_table_header"><td colspan=3><?php _e("'Load More' Button Options"); ?></td></tr>
|
656 |
<tr>
|
668 |
<td><?php _e("The text color of the button. Any hex color code."); ?></td>
|
669 |
<td><code>[instagram-feed buttontextcolor=#fff]</code></td>
|
670 |
</tr>
|
671 |
+
<tr>
|
672 |
+
<td>buttontext</td>
|
673 |
+
<td><?php _e("The text used for the button."); ?></td>
|
674 |
+
<td><code>[instagram-feed buttontext="Load More Photos"]</code></td>
|
675 |
+
</tr>
|
676 |
|
677 |
+
<tr class="sbi_table_header"><td colspan=3><?php _e("'Follow on Instagram' Button Options"); ?></td></tr>
|
678 |
+
<tr>
|
679 |
+
<td>showfollow</td>
|
680 |
+
<td><?php _e("Whether to show the 'Follow on Instagram' button. 'true' or 'false'."); ?></td>
|
681 |
+
<td><code>[instagram-feed showfollow=true]</code></td>
|
682 |
+
</tr>
|
683 |
+
<tr>
|
684 |
+
<td>followcolor</td>
|
685 |
+
<td><?php _e("The background color of the button. Any hex color code."); ?></td>
|
686 |
+
<td><code>[instagram-feed followcolor=#ff0000]</code></td>
|
687 |
+
</tr>
|
688 |
+
<tr>
|
689 |
+
<td>followtextcolor</td>
|
690 |
+
<td><?php _e("The text color of the button. Any hex color code."); ?></td>
|
691 |
+
<td><code>[instagram-feed followtextcolor=#fff]</code></td>
|
692 |
+
</tr>
|
693 |
+
<tr>
|
694 |
+
<td>followtext</td>
|
695 |
+
<td><?php _e("The text used for the button."); ?></td>
|
696 |
+
<td><code>[instagram-feed followtext="Follow me"]</code></td>
|
697 |
+
</tr>
|
698 |
+
|
699 |
+
<tr class="sbi_table_header"><td colspan=3><?php _e("Caption Options"); ?></td></tr>
|
700 |
<tr class="sbi_pro">
|
701 |
<td>showcaption</td>
|
702 |
<td><?php _e("Whether to show the photo caption. 'true' or 'false'."); ?></td>
|
735 |
<td><code>[instagram-feed likessize=14]</code></td>
|
736 |
</tr>
|
737 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
738 |
</tbody>
|
739 |
</table>
|
740 |
|
741 |
+
<p><?php _e('Need help setting up the plugin? Check out our <a href="http://smashballoon.com/instagram-feed/free/" target="_blank">setup directions</a>'); ?></p>
|
742 |
+
|
743 |
<?php } //End Display tab ?>
|
744 |
|
745 |
<hr />
|
746 |
|
747 |
+
<a href="https://smashballoon.com/instagram-feed/demo" target="_blank" style="display: block; margin: 20px 0 0 0; float: left; clear: both;">
|
748 |
<img src="<?php echo plugins_url( 'img/instagram-pro-promo.png' , __FILE__ ) ?>" alt="Instagram Feed Pro">
|
749 |
</a>
|
750 |
|
753 |
<?php } //End Settings page
|
754 |
|
755 |
function sb_instagram_admin_style() {
|
756 |
+
wp_register_style( 'sb_instagram_admin_css', plugin_dir_url( __FILE__ ) . 'css/sb-instagram-admin.css?2', false, '1.0.0' );
|
757 |
wp_enqueue_style( 'sb_instagram_admin_css' );
|
758 |
wp_enqueue_style( 'wp-color-picker' );
|
759 |
}
|
760 |
add_action( 'admin_enqueue_scripts', 'sb_instagram_admin_style' );
|
761 |
|
762 |
function sb_instagram_admin_scripts() {
|
763 |
+
wp_enqueue_script( 'sb_instagram_admin_js', plugin_dir_url( __FILE__ ) . 'js/sb-instagram-admin.js?2' );
|
764 |
if( !wp_script_is('jquery-ui-draggable') ) {
|
765 |
wp_enqueue_script(
|
766 |
array(
|
779 |
}
|
780 |
add_action( 'admin_enqueue_scripts', 'sb_instagram_admin_scripts' );
|
781 |
|
782 |
+
// Add a Settings link to the plugin on the Plugins page
|
783 |
+
$sbi_plugin_file = 'instagram-feed/instagram-feed.php';
|
784 |
+
add_filter( "plugin_action_links_{$sbi_plugin_file}", 'sbi_add_settings_link', 10, 2 );
|
785 |
+
|
786 |
+
//modify the link by unshifting the array
|
787 |
+
function sbi_add_settings_link( $links, $file ) {
|
788 |
+
$sbi_settings_link = '<a href="' . admin_url( 'admin.php?page=sb-instagram-feed' ) . '">' . __( 'Settings', 'sb-instagram-feed' ) . '</a>';
|
789 |
+
array_unshift( $links, $sbi_settings_link );
|
790 |
+
|
791 |
+
return $links;
|
792 |
+
}
|
793 |
|
794 |
?>
|
instagram-feed.php
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
/*
|
3 |
Plugin Name: Instagram Feed
|
4 |
Plugin URI: http://smashballoon.com/instagram-feed
|
5 |
-
Description:
|
6 |
-
Version: 1.
|
7 |
Author: Smash Balloon
|
8 |
Author URI: http://smashballoon.com/
|
9 |
License: GPLv2 or later
|
@@ -51,7 +51,14 @@ function display_instagram($atts, $content = null) {
|
|
51 |
'showbutton' => $options[ 'sb_instagram_show_btn' ],
|
52 |
'buttoncolor' => $options[ 'sb_instagram_btn_background' ],
|
53 |
'buttontextcolor' => $options[ 'sb_instagram_btn_text_color' ],
|
|
|
54 |
'imageres' => $options[ 'sb_instagram_image_res' ],
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
), $atts);
|
56 |
|
57 |
|
@@ -80,37 +87,72 @@ function display_instagram($atts, $content = null) {
|
|
80 |
if ( !empty($sb_instagram_image_padding) ) $sb_instagram_styles .= 'padding-bottom: ' . (2*intval($sb_instagram_image_padding)).$sb_instagram_image_padding_unit . '; ';
|
81 |
$sb_instagram_styles .= '"';
|
82 |
|
83 |
-
//
|
84 |
-
$
|
85 |
-
if($
|
86 |
-
$
|
87 |
-
$sb_instagram_btn_text_color = $atts['buttontextcolor'];
|
88 |
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
$sb_instagram_button_styles = 'style="';
|
90 |
-
if ( !empty($sb_instagram_btn_background) ) $sb_instagram_button_styles .= 'background: '.$sb_instagram_btn_background.'; ';
|
91 |
-
if ( !empty($sb_instagram_btn_text_color) ) $sb_instagram_button_styles .= 'color: '.$sb_instagram_btn_text_color.';';
|
92 |
$sb_instagram_button_styles .= '"';
|
93 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
|
95 |
/******************* CONTENT ********************/
|
96 |
|
97 |
$sb_instagram_content = '<div id="sb_instagram" class="sbi ';
|
98 |
if ( !empty($sb_instagram_height) ) $sb_instagram_content .= 'sbi_fixed_height ';
|
99 |
$sb_instagram_content .= 'sbi_col_' . trim($sb_instagram_cols);
|
100 |
-
$sb_instagram_content .= '" '.$sb_instagram_styles .' data-id="' . $sb_instagram_user_id . '" data-num="' . trim($atts['num']) . '" data-res="' . trim($atts['imageres']) . '" data-options=\'{"sortby": "'.$atts['sortby'].'"}\'>';
|
|
|
|
|
|
|
101 |
|
|
|
102 |
$sb_instagram_content .= '<div id="sbi_images" style="padding: '.$sb_instagram_image_padding . $sb_instagram_image_padding_unit .';">';
|
103 |
|
|
|
|
|
|
|
104 |
//Error messages
|
105 |
-
if( empty($sb_instagram_user_id) || !isset($sb_instagram_user_id) ) $sb_instagram_content .= '<p>Please enter a User ID on the Instagram plugin Settings page</p>';
|
106 |
|
107 |
if( empty($options[ 'sb_instagram_at' ]) || !isset($options[ 'sb_instagram_at' ]) ) $sb_instagram_content .= '<p>Please enter an Access Token on the Instagram Feed plugin Settings page</p>';
|
108 |
|
|
|
109 |
$sb_instagram_content .= '</div><div id="sbi_load"';
|
110 |
if($sb_instagram_image_padding == 0 || !isset($sb_instagram_image_padding)) $sb_instagram_content .= ' style="padding-top: 5px"';
|
111 |
$sb_instagram_content .= '>';
|
112 |
-
|
113 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
|
115 |
//Return our feed HTML to display
|
116 |
return $sb_instagram_content;
|
@@ -126,7 +168,7 @@ add_filter('widget_text', 'do_shortcode');
|
|
126 |
//Enqueue stylesheet
|
127 |
add_action( 'wp_enqueue_scripts', 'sb_instagram_styles_enqueue' );
|
128 |
function sb_instagram_styles_enqueue() {
|
129 |
-
wp_register_style( 'sb_instagram_styles', plugins_url('css/sb-instagram.css?
|
130 |
wp_enqueue_style( 'sb_instagram_styles' );
|
131 |
}
|
132 |
|
@@ -134,7 +176,7 @@ function sb_instagram_styles_enqueue() {
|
|
134 |
add_action( 'wp_enqueue_scripts', 'sb_instagram_scripts_enqueue' );
|
135 |
function sb_instagram_scripts_enqueue() {
|
136 |
//Register the script to make it available
|
137 |
-
wp_register_script( 'sb_instagram_scripts', plugins_url( '/js/sb-instagram.js?
|
138 |
|
139 |
//Options to pass to JS file
|
140 |
$sb_instagram_settings = get_option('sb_instagram_settings');
|
@@ -165,6 +207,7 @@ function sb_instagram_custom_css() {
|
|
165 |
if( !empty($sb_instagram_custom_css) ) echo "\r\n";
|
166 |
}
|
167 |
|
|
|
168 |
//Custom JS
|
169 |
add_action( 'wp_footer', 'sb_instagram_custom_js' );
|
170 |
function sb_instagram_custom_js() {
|
2 |
/*
|
3 |
Plugin Name: Instagram Feed
|
4 |
Plugin URI: http://smashballoon.com/instagram-feed
|
5 |
+
Description: Display beautifully clean, customizable, and responsive Instagram feeds
|
6 |
+
Version: 1.3
|
7 |
Author: Smash Balloon
|
8 |
Author URI: http://smashballoon.com/
|
9 |
License: GPLv2 or later
|
51 |
'showbutton' => $options[ 'sb_instagram_show_btn' ],
|
52 |
'buttoncolor' => $options[ 'sb_instagram_btn_background' ],
|
53 |
'buttontextcolor' => $options[ 'sb_instagram_btn_text_color' ],
|
54 |
+
'buttontext' => $options[ 'sb_instagram_btn_text' ],
|
55 |
'imageres' => $options[ 'sb_instagram_image_res' ],
|
56 |
+
'showfollow' => $options[ 'sb_instagram_show_follow_btn' ],
|
57 |
+
'followcolor' => $options[ 'sb_instagram_folow_btn_background' ],
|
58 |
+
'followtextcolor' => $options[ 'sb_instagram_follow_btn_text_color' ],
|
59 |
+
'followtext' => $options[ 'sb_instagram_follow_btn_text' ],
|
60 |
+
'showheader' => $options[ 'sb_instagram_show_header' ],
|
61 |
+
'headercolor' => $options[ 'sb_instagram_header_color' ]
|
62 |
), $atts);
|
63 |
|
64 |
|
87 |
if ( !empty($sb_instagram_image_padding) ) $sb_instagram_styles .= 'padding-bottom: ' . (2*intval($sb_instagram_image_padding)).$sb_instagram_image_padding_unit . '; ';
|
88 |
$sb_instagram_styles .= '"';
|
89 |
|
90 |
+
//Header
|
91 |
+
$sb_instagram_show_header = $atts['showheader'];
|
92 |
+
if($sb_instagram_show_header == 'false') $sb_instagram_show_header = false;
|
93 |
+
$sb_instagram_header_color = str_replace('#', '', $atts['headercolor']);
|
|
|
94 |
|
95 |
+
//Load more button
|
96 |
+
$sb_instagram_show_btn = $atts['showbutton'];
|
97 |
+
if($sb_instagram_show_btn == 'false') $sb_instagram_show_btn = false;
|
98 |
+
$sb_instagram_btn_background = str_replace('#', '', $atts['buttoncolor']);
|
99 |
+
$sb_instagram_btn_text_color = str_replace('#', '', $atts['buttontextcolor']);
|
100 |
+
//Load more button styles
|
101 |
$sb_instagram_button_styles = 'style="';
|
102 |
+
if ( !empty($sb_instagram_btn_background) ) $sb_instagram_button_styles .= 'background: #'.$sb_instagram_btn_background.'; ';
|
103 |
+
if ( !empty($sb_instagram_btn_text_color) ) $sb_instagram_button_styles .= 'color: #'.$sb_instagram_btn_text_color.';';
|
104 |
$sb_instagram_button_styles .= '"';
|
105 |
|
106 |
+
//Follow button vars
|
107 |
+
$sb_instagram_show_follow_btn = $atts['showfollow'];
|
108 |
+
if($sb_instagram_show_follow_btn == 'false') $sb_instagram_show_follow_btn = false;
|
109 |
+
$sb_instagram_follow_btn_background = str_replace('#', '', $atts['followcolor']);
|
110 |
+
$sb_instagram_follow_btn_text_color = str_replace('#', '', $atts['followtextcolor']);
|
111 |
+
$sb_instagram_follow_btn_text = $atts['followtext'];
|
112 |
+
//Follow button styles
|
113 |
+
$sb_instagram_follow_btn_styles = 'style="';
|
114 |
+
if ( !empty($sb_instagram_follow_btn_background) ) $sb_instagram_follow_btn_styles .= 'background: #'.$sb_instagram_follow_btn_background.'; ';
|
115 |
+
if ( !empty($sb_instagram_follow_btn_text_color) ) $sb_instagram_follow_btn_styles .= 'color: #'.$sb_instagram_follow_btn_text_color.';';
|
116 |
+
$sb_instagram_follow_btn_styles .= '"';
|
117 |
+
//Follow button HTML
|
118 |
+
$sb_instagram_follow_btn_html = '<div class="sbi_follow_btn"><a href="http://instagram.com/" '.$sb_instagram_follow_btn_styles.' target="_blank"><i class="fa fa-instagram"></i>'.$sb_instagram_follow_btn_text.'</a></div>';
|
119 |
+
|
120 |
|
121 |
/******************* CONTENT ********************/
|
122 |
|
123 |
$sb_instagram_content = '<div id="sb_instagram" class="sbi ';
|
124 |
if ( !empty($sb_instagram_height) ) $sb_instagram_content .= 'sbi_fixed_height ';
|
125 |
$sb_instagram_content .= 'sbi_col_' . trim($sb_instagram_cols);
|
126 |
+
$sb_instagram_content .= '" '.$sb_instagram_styles .' data-id="' . $sb_instagram_user_id . '" data-num="' . trim($atts['num']) . '" data-res="' . trim($atts['imageres']) . '" data-cols="' . trim($sb_instagram_cols) . '" data-options=\'{"sortby": "'.$atts['sortby'].'", "headercolor": "'.$sb_instagram_header_color.'"}\'>';
|
127 |
+
|
128 |
+
//Header
|
129 |
+
if( $sb_instagram_show_header ) $sb_instagram_content .= '<div class="sb_instagram_header" style="padding: '.(2*intval($sb_instagram_image_padding)) . $sb_instagram_image_padding_unit .'; padding-bottom: 0;"></div>';
|
130 |
|
131 |
+
//Images container
|
132 |
$sb_instagram_content .= '<div id="sbi_images" style="padding: '.$sb_instagram_image_padding . $sb_instagram_image_padding_unit .';">';
|
133 |
|
134 |
+
//Loader
|
135 |
+
$sb_instagram_content .= '<div class="sbi_loader fa-spin"></div>';
|
136 |
+
|
137 |
//Error messages
|
138 |
+
if( empty($sb_instagram_user_id) || !isset($sb_instagram_user_id) ) $sb_instagram_content .= '<p>Please enter a User ID on the Instagram Feed plugin Settings page</p>';
|
139 |
|
140 |
if( empty($options[ 'sb_instagram_at' ]) || !isset($options[ 'sb_instagram_at' ]) ) $sb_instagram_content .= '<p>Please enter an Access Token on the Instagram Feed plugin Settings page</p>';
|
141 |
|
142 |
+
//Load section
|
143 |
$sb_instagram_content .= '</div><div id="sbi_load"';
|
144 |
if($sb_instagram_image_padding == 0 || !isset($sb_instagram_image_padding)) $sb_instagram_content .= ' style="padding-top: 5px"';
|
145 |
$sb_instagram_content .= '>';
|
146 |
+
|
147 |
+
//Load More button
|
148 |
+
if( $sb_instagram_show_btn ) $sb_instagram_content .= '<a class="sbi_load_btn" href="javascript:void(0);" '.$sb_instagram_button_styles.'>'.$atts['buttontext'].'</a>';
|
149 |
+
|
150 |
+
//Follow button
|
151 |
+
if( $sb_instagram_show_follow_btn ) $sb_instagram_content .= $sb_instagram_follow_btn_html;
|
152 |
+
|
153 |
+
$sb_instagram_content .= '</div>'; //End #sbi_load
|
154 |
+
|
155 |
+
$sb_instagram_content .= '</div>'; //End #sb_instagram
|
156 |
|
157 |
//Return our feed HTML to display
|
158 |
return $sb_instagram_content;
|
168 |
//Enqueue stylesheet
|
169 |
add_action( 'wp_enqueue_scripts', 'sb_instagram_styles_enqueue' );
|
170 |
function sb_instagram_styles_enqueue() {
|
171 |
+
wp_register_style( 'sb_instagram_styles', plugins_url('css/sb-instagram.css?5', __FILE__) );
|
172 |
wp_enqueue_style( 'sb_instagram_styles' );
|
173 |
}
|
174 |
|
176 |
add_action( 'wp_enqueue_scripts', 'sb_instagram_scripts_enqueue' );
|
177 |
function sb_instagram_scripts_enqueue() {
|
178 |
//Register the script to make it available
|
179 |
+
wp_register_script( 'sb_instagram_scripts', plugins_url( '/js/sb-instagram.js?7' , __FILE__ ), array('jquery'), '1.8', true );
|
180 |
|
181 |
//Options to pass to JS file
|
182 |
$sb_instagram_settings = get_option('sb_instagram_settings');
|
207 |
if( !empty($sb_instagram_custom_css) ) echo "\r\n";
|
208 |
}
|
209 |
|
210 |
+
|
211 |
//Custom JS
|
212 |
add_action( 'wp_footer', 'sb_instagram_custom_js' );
|
213 |
function sb_instagram_custom_js() {
|
js/sb-instagram.js
CHANGED
@@ -15,16 +15,38 @@
|
|
15 |
|
16 |
var $self = $(this),
|
17 |
$target = $self.find('#sbi_images'),
|
18 |
-
$loadBtn = $self.find("#sbi_load"),
|
19 |
imgRes = 'standard_resolution',
|
|
|
|
|
20 |
//Convert styles JSON string to an object
|
21 |
feedOptions = JSON.parse( this.getAttribute('data-options') ),
|
22 |
getType = 'user',
|
23 |
-
sortby = 'none'
|
|
|
|
|
|
|
|
|
24 |
|
25 |
if( feedOptions.sortby !== '' ) sortby = feedOptions.sortby;
|
26 |
|
27 |
switch( this.getAttribute('data-res') ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
case 'thumb':
|
29 |
imgRes = 'thumbnail';
|
30 |
break;
|
@@ -35,42 +57,124 @@
|
|
35 |
imgRes = 'standard_resolution';
|
36 |
}
|
37 |
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
|
75 |
|
76 |
});
|
15 |
|
16 |
var $self = $(this),
|
17 |
$target = $self.find('#sbi_images'),
|
18 |
+
$loadBtn = $self.find("#sbi_load .sbi_load_btn"),
|
19 |
imgRes = 'standard_resolution',
|
20 |
+
cols = parseInt( this.getAttribute('data-cols') ),
|
21 |
+
num = this.getAttribute('data-num'),
|
22 |
//Convert styles JSON string to an object
|
23 |
feedOptions = JSON.parse( this.getAttribute('data-options') ),
|
24 |
getType = 'user',
|
25 |
+
sortby = 'none',
|
26 |
+
user_id = this.getAttribute('data-id'),
|
27 |
+
num = this.getAttribute('data-num'),
|
28 |
+
posts_arr = [],
|
29 |
+
$header = '';
|
30 |
|
31 |
if( feedOptions.sortby !== '' ) sortby = feedOptions.sortby;
|
32 |
|
33 |
switch( this.getAttribute('data-res') ) {
|
34 |
+
case 'auto':
|
35 |
+
var feedWidth = $('#sb_instagram').innerWidth(),
|
36 |
+
colWidth = $('#sb_instagram').innerWidth() / cols;
|
37 |
+
|
38 |
+
if( feedWidth < 680 ) colWidth = 300; //Use 306x306 images
|
39 |
+
if( feedWidth < 480 && feedWidth > 300 ) colWidth = 480; //Use full size images
|
40 |
+
|
41 |
+
if( colWidth < 150 ){
|
42 |
+
imgRes = 'thumbnail';
|
43 |
+
} else if( colWidth < 306 ){
|
44 |
+
imgRes = 'low_resolution';
|
45 |
+
} else {
|
46 |
+
imgRes = 'standard_resolution';
|
47 |
+
}
|
48 |
+
|
49 |
+
break;
|
50 |
case 'thumb':
|
51 |
imgRes = 'thumbnail';
|
52 |
break;
|
57 |
imgRes = 'standard_resolution';
|
58 |
}
|
59 |
|
60 |
+
//Split comma separated hashtags into array
|
61 |
+
var ids_arr = user_id.replace(/ /g,'').split(",");
|
62 |
+
var looparray = ids_arr;
|
63 |
+
|
64 |
+
//Get page info for first User ID
|
65 |
+
var headerStyles = '',
|
66 |
+
sbi_page_url = 'https://api.instagram.com/v1/users/' + ids_arr[0] + '?access_token=' + sb_instagram_js_options.sb_instagram_at;
|
67 |
+
|
68 |
+
if(feedOptions.headercolor.length) headerStyles = 'style="color: #'+feedOptions.headercolor+'"';
|
69 |
+
|
70 |
+
$.ajax({
|
71 |
+
method: "GET",
|
72 |
+
url: sbi_page_url,
|
73 |
+
dataType: "jsonp",
|
74 |
+
success: function(data) {
|
75 |
+
$header = '<a href="http://instagram.com/'+data.data.username+'" target="_blank" title="@'+data.data.username+'" class="sbi_header_link" '+headerStyles+'>';
|
76 |
+
$header += '<div class="sbi_header_text">';
|
77 |
+
$header += '<h3'
|
78 |
+
if( data.data.bio.length == 0 ) $header += ' class="sbi_no_bio"';
|
79 |
+
$header += '>@'+data.data.username+'</h3>';
|
80 |
+
if( data.data.bio.length ) $header += '<p class="sbi_bio">'+data.data.bio+'</p>';
|
81 |
+
$header += '</div>';
|
82 |
+
$header += '<div class="sbi_header_img">';
|
83 |
+
$header += '<div class="sbi_header_img_hover"><i class="fa fa-instagram"></i></div>';
|
84 |
+
$header += '<img src="'+data.data.profile_picture+'" alt="'+data.data.full_name+'" width="50" height="50">';
|
85 |
+
$header += '</div>';
|
86 |
+
$header += '</a>';
|
87 |
+
//Add the header
|
88 |
+
$self.find('.sb_instagram_header').prepend( $header );
|
89 |
+
//Change the URL of the follow button
|
90 |
+
if( $self.find('.sbi_follow_btn').length ) $self.find('.sbi_follow_btn a').attr('href', 'http://instagram.com/' + data.data.username )
|
91 |
+
}
|
92 |
+
});
|
93 |
+
|
94 |
+
//Loop through User IDs
|
95 |
+
looparray.forEach(function(entry) {
|
96 |
+
|
97 |
+
var userFeed = new instagramfeed({
|
98 |
+
target: $target,
|
99 |
+
get: getType,
|
100 |
+
sortBy: sortby,
|
101 |
+
resolution: imgRes,
|
102 |
+
limit: parseInt( num ),
|
103 |
+
template: '<div class="sbi_item sbi_type_{{model.type}} sbi_new" id="sbi_{{id}}" data-date="{{model.created_time_raw}}"><div class="sbi_photo_wrap"><a class="sbi_photo" href="{{link}}" target="_blank"><img src="{{image}}" alt="{{image}}" /></a></div></div>',
|
104 |
+
filter: function(image) {
|
105 |
+
//Create time for sorting
|
106 |
+
var date = new Date(image.created_time*1000),
|
107 |
+
time = date.getTime();
|
108 |
+
image.created_time_raw = time;
|
109 |
+
|
110 |
+
return true;
|
111 |
+
},
|
112 |
+
userId: parseInt( entry ),
|
113 |
+
accessToken: sb_instagram_js_options.sb_instagram_at,
|
114 |
+
after: function() {
|
115 |
+
|
116 |
+
$self.find('.sbi_loader').remove();
|
117 |
+
|
118 |
+
/* Load more button */
|
119 |
+
if (this.hasNext()) {
|
120 |
+
$loadBtn.show();
|
121 |
+
} else {
|
122 |
+
$loadBtn.hide();
|
123 |
+
$self.css('padding-bottom', 0);
|
124 |
+
}
|
125 |
+
|
126 |
+
// Call Custom JS if it exists
|
127 |
+
if (typeof sbi_custom_js == 'function') sbi_custom_js();
|
128 |
+
|
129 |
+
//Fade photos on hover
|
130 |
+
$('#sb_instagram .sbi_photo').each(function(){
|
131 |
+
$(this).hover(function(){
|
132 |
+
$(this).fadeTo(200, 0.85);
|
133 |
+
}, function(){
|
134 |
+
$(this).stop().fadeTo(500, 1);
|
135 |
+
});
|
136 |
+
});
|
137 |
+
|
138 |
+
|
139 |
+
//Sort posts by date
|
140 |
+
//only sort the new posts that are loaded in, not the whole feed, otherwise some photos will switch positions due to dates
|
141 |
+
$self.find('#sbi_images .sbi_item.sbi_new').sort(function (a, b) {
|
142 |
+
var aComp = $(a).attr("data-date"),
|
143 |
+
bComp = $(b).attr("data-date");
|
144 |
+
|
145 |
+
if(sortby == 'none'){
|
146 |
+
//Order by date
|
147 |
+
return bComp - aComp;
|
148 |
+
} else {
|
149 |
+
//Randomize
|
150 |
+
return (Math.round(Math.random())-0.5);
|
151 |
+
}
|
152 |
+
|
153 |
+
}).appendTo( $self.find("#sbi_images") );
|
154 |
+
|
155 |
+
//Remove the new class after 500ms, once the sorting is done
|
156 |
+
setTimeout(function(){
|
157 |
+
$('#sbi_images .sbi_item.sbi_new').removeClass('sbi_new');
|
158 |
+
}, 500);
|
159 |
+
|
160 |
+
//Header profile pic hover
|
161 |
+
$self.find('.sb_instagram_header a').hover(function(){
|
162 |
+
$self.find('.sb_instagram_header .sbi_header_img_hover').fadeIn(200);
|
163 |
+
}, function(){
|
164 |
+
$self.find('.sb_instagram_header .sbi_header_img_hover').stop().fadeOut(600);
|
165 |
+
});
|
166 |
+
|
167 |
+
|
168 |
+
} // End 'after' function
|
169 |
+
});
|
170 |
+
|
171 |
+
$loadBtn.click(function() {
|
172 |
+
userFeed.next();
|
173 |
+
});
|
174 |
+
|
175 |
+
userFeed.run();
|
176 |
+
|
177 |
+
}); //End User ID array loop
|
178 |
|
179 |
|
180 |
});
|