=== Custom Twitter Feeds (Tweets Widget) ===
Author: Smash Balloon
Contributors: smashballoon, craig-at-smash-balloon
Support Website: http://smashballoon/custom-twitter-feeds/
Tags: Twitter, Twitter feed, Twitter Tweets, Twitter widget, Custom Twitter Feed
Requires at least: 4.1
Tested up to: 6.0
Stable tag: 2.0.1
Requires PHP: 5.6
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Custom Twitter Feeds allows you to display completely customizable Twitter Tweets from any user timeline, Twitter hashtag, or home timeline on your website.

== Description ==
Display **completely customizable**, **responsive** and **search engine crawlable** Twitter feeds on your website. The Custom Twitter Feeds plugin will display Tweets that completely match the look and feel of your site and includes tons of customization options!

= Features =
* **Completely Customizable** - by default the Twitter feeds will inherit your theme's styles
* Twitter feed content is **crawlable by search engines** adding SEO value to your site
* **Completely responsive and mobile optimized** - your Twitter feeds work on any screen size
* Display Tweets from any user, your own Twitter account and those you follow, or from a specific hashtag
* Display **multiple Twitter feeds** from different Twitter users on multiple pages or widgets
* Post caching means that your Twitter feed loads **lightning fast** and minimizes Twitter API requests
* **Infinitely load more** of your Tweets with the 'Load More' button
* Built-in easy to use "Custom Twitter Feeds" Widget makes it easy to display Tweets from any Twitter account
* Fully internationalized and translatable into any language
* Display a beautiful header at the top of your Twitter feed
* Enter your own custom CSS or JavaScript for even deeper customization of your Tweets

For simple step-by-step directions on how to set up the Custom Twitter Feeds plugin please refer to our [setup guide](http://smashballoon.com/custom-twitter-feeds/free/?utm_campaign=twitter-free&utm_source=readme&utm_medium=stepbystep 'Custom Twitter Feeds setup guide').

= Benefits =
* **Increase social engagement** between you and your users, customers, or fans
* **Save time** by using the Custom Twitter Feeds plugin to generate dynamic, search engine crawlable content on your website
* **Get more follows** by displaying your Twitter content directly on your site
* **Improve your SEO** as all of that quality keyword-rich Twitter content is directly embedded into your website
* **Keep users on your site** by letting them reply and like your Tweets directly on your site
* Display your Twitter content **your way** to perfectly match your website's style
* The Custom Twitter Feeds plugin is **updated regularly** with new features, bug-fixes and Twitter API changes
* Support is quick and effective
* We're dedicated to providing the **most customizable**, **robust** and **well supported** Twitter feed plugin in the world!

[View the reviews](https://wordpress.org/support/plugin/custom-twitter-feeds/reviews/) to see what other users are saying about the Custom Twitter Feeds plugin.

= Feedback or Support =
We're dedicated to providing the most robust and well supported Twitter feed plugin in the world, so if you have an issue or any feedback on how to improve the plugin then please [let us know](https://smashballoon.com/custom-twitter-feeds/support/?utm_campaign=twitter-free&utm_source=readme&utm_medium=letusknowimprove 'Twitter Feed Support').

If you like the plugin then please consider leaving a review, as it really helps to support the plugin. If you have an issue then please allow us to help you fix it before leaving a review. Just [let us know](https://smashballoon.com/custom-twitter-feeds/support/?utm_campaign=twitter-free&utm_source=readme&utm_medium=letusknowbug 'Twitter Feed Support') what the problem is and we'll get back to you right away.

= Featured Reviews =
"***Great for Customization** - Great plugin! Superb customization options! Am changing all twitter feeds for all my websites to this! I have tried several Twitter plugins so far. This is the best I have come across :)*" - [@nehavivekpatil](https://wordpress.org/support/topic/great-for-customization-2/)

"***Excellent plug-in. Excellent support.** - Excellent instructions and guidance. Patient and prompt support for the newbies. Regular updates. You can't lose. Thank you Smash Balloon.* - [@nuspa](https://wordpress.org/support/topic/excellent-plug-in-excellent-support-2/)

"***Amazing Support and a Great Twitter Plugin** - I am using the free version of this Twitter plugin and identified a real problem in the display on my website. I emailed support and Craig was all over the fix for me. Seven or so emails later (even on a Sunday) the problem was fixed and Craig was still reaching out to make sure all was well.*

*In a world of crappy support for premium plugins, and even worse support for free plugins, this kind of support (and listening to customers) that Craig and Smash Balloon provided me make their premium products worth every penny. In fact, I am going to buy them on my next project. They deserve it.*

*Thanks again, Craig!*" - [@kcwebguy](https://wordpress.org/support/topic/amazing-support-and-a-great-twitter-plugin/)

"***At last a configurable Twitter Feed that WORKS!** - I have messed with Twitter feeds on sites so many times only to be frustrated. This Plugin is the best I have tried. Stable, configurable and not too hefty a drag on performance. Well done!* - [@mikemac67](https://wordpress.org/support/topic/at-last-a-configurable-feed-that-works/)

"***Everything you'll need in a Twitter feed plugin** - We've tried a few Twitter feed plugins across a bunch of our sites, and this one is now our go-to favorite. Most of the others we've tried have either styling or performance issues, but we've been using this plugin for a few months now, and it's been perfect. There are tons of customization options, the feed looks great, and... it works!*

*Kudos to the SmashBalloon team on a well supported, tightly developed, feature-packed WordPress Plugin.* - [@laymanlab](https://wordpress.org/support/topic/everything-youll-need-in-a-twitter-feed-plugin/)

= Pro Version =
We have a [Pro version](http://smashballoon.com/custom-twitter-feeds/?utm_campaign=twitter-free&utm_source=readme&utm_medium=havepro 'Custom Twitter Feeds Pro') which includes some awesome additional features:

* Display Tweets from **multiple users or hashtags in the same Twitter feed**
* Display **photos**, **videos**, and **gifs** and view them in a **popup lightbox** directly on your site
* Multi-column **Masonry layout** [demo](http://smashballoon.com/custom-twitter-feeds/demo/masonry/?utm_campaign=twitter-free&utm_source=readme&utm_medium=masonry 'Custom Twitter Feeds Pro Masonry Demo')
* Allow **filtering** of Twitter timelines include/exclude any/all keywords/hashtags
* Customizable **Carousels** and **Slideshows** of your Tweets
* Fully functional Twitter **search endpoint**
* Display Tweets you're mentioned in
* Tweet-specific **moderation system**
* Visual **Twitter cards** displayed with links which support them
* Include **Tweet replies** (in reply to tweets)
* **Combine multiple Twitter feeds** into one
* **Autoload more Tweets** when scrolling

Try the Pro version [demo here](http://smashballoon.com/custom-twitter-feeds/demo?utm_campaign=twitter-free&utm_source=readme&utm_medium=trydemo 'Custom Twitter Feeds Pro Demo')

== Installation ==
1. Install the Custom Twitter Feeds plugin either via the WordPress plugin directory, or by uploading the files to your web server (in the /wp-content/plugins/ directory).
2. Activate the Custom Twitter Feeds plugin through the 'Plugins' menu in WordPress.
3. Navigate to the 'Twitter Feed' settings page to configure your Twitter feed.
4. Use the shortcode [custom-twitter-feeds] in your page, post or widget to display your Twitter feed.
5. You can display multiple Twitter feeds with different configurations by specifying the necessary parameters directly in the shortcode: [custom-twitter-feeds hashtag=#smashballoon].

For simple step-by-step directions on how to set up the Custom Twitter Feeds plugin please refer to our [setup guide](http://smashballoon.com/custom-twitter-feeds/free/?utm_campaign=twitter-free&utm_source=readme&utm_medium=stepbystep2 'Custom Twitter Feeds setup guide').

= Setting up the Free Custom Twitter Feeds WordPress Plugin =

If you have an issue or question while setting up or using the plugin then please submit a support ticket and we'll get back to you as soon as we can.

1) Once you've installed the Custom Twitter Feeds plugin click on the "Twitter Feeds" item in your WordPress menu

2) Click on the large blue Twitter login button to get your Twitter Access Token and Twitter Secret. Note; if you have your own Twitter Developer App set up then you can enter your Twitter information manually by enabling the checkbox below the Twitter login button.

3) Authorize the Custom Twitter Feeds plugin to read your Tweets.
Note; the plugin does not obtain permission to edit or write to your Twitter account, only to read your Twitter content.

4) Twitter sends back your Twitter Access Token and Twitter Secret which are then automatically saved by the Custom Twitter Feeds plugin. This information is required in order to connect to the Twitter API.

5) Enter a Twitter screenname to display Tweets from. Alternatively, choose to display Tweets from your Twitter home timeline or a Twitter hashtag.

6) Navigate to the Customize and Style pages to customize your Twitter feed.

7) Once you've customized your Twitter feed, click on the "Display Your Feed" tab for directions on how to display your Twitter feed (or multiple Twitter feeds).

8) Copy the [custom-twitter-feeds] shortcode and paste it into any page, post or widget where you want the Twitter feed to appear.

9) You can paste the [custom-twitter-feeds] shortcode directly into your page editor.

10) You can use the default WordPress 'Text' widget to display your Twitter Feed in a sidebar or other widget area.

11) View your website to see your Twitter feed(s) in all their glory!

== Frequently Asked Questions ==

= Can I display multiple Twitter feeds on my site or on the same page? =

Yep. You can display multiple Twitter feeds by using our built-in shortcode options, for example: `[custom-twitter-feeds screenname="smashballoon" num=3]`. You can add it to any post, page, or widget, to easily display your Twitter feed in a beautiful Twitter widget.

= How do I embed the Twitter Feed directly into a WordPress page template? =

You can embed your Twitter feed directly into a template file by using the WordPress [do_shortcode](http://codex.wordpress.org/Function_Reference/do_shortcode) function: `<?php echo do_shortcode('[custom-twitter-feeds]'); ?>`.

= Is the content of my Twitter feed crawlable by search engines and how does it help improve my SEO? =

Unlike other Twitter plugins which use iframes to embed your Twitter feed into your page in a widget, the Custom Twitter Feeds uses server-side code to embed your Twitter feed widget content directly into your page. This adds dynamic, search engine crawlable content to your site.

= Will Custom Twitter Feeds work with W3 Total Cache or other caching plugins? =

The Custom Twitter Feeds plugin should work in compatibility with most, if not all, caching plugins, but you may need to tweak the settings in order to allow the Twitter feed to update successfully and display your latest Twitter posts.  If you are experiencing problems with your Twitter feed widget not updating then try disabling either 'Page Caching' or 'Object Caching' in W3 Total Cache (or any other similar caching plugin) to see whether that fixes the problem and the Twitter feed displays and updates successfully.

= The font in my Twitter feed isn't inherited from my website =

Be default your Twitter feed should inherit the font from your website. If this isn't the case then it's possible that something in the theme is preventing this from happening. An issue that we've run into before is that &lt;code&gt; tags are added into the Twitter feed widget HTML by either the theme, another plugin, or perhaps even the custom-twitter-feeds shortcode being wrapped in code tags in your page editor. To fix this;

1) First – go to your page editor, click on the 'Text' tab in the top right of the editor box, and check whether the [custom-twitter-feeds] shortcode is being wrapped in &lt;code&gt; tags, like so: &lt;code&gt;[custom-twitter-feeds]&lt;/code&gt;. If it is, then remove them.

2) If this doesn't solve the problem then try adding the following to the plugin's "Custom CSS" section (Twitter Feeds > Customize > Custom CSS):

`#ctf code { font-family: sans-serif; }`

You can replace the font-family with whatever font your theme is using.

= Differences between the free version and Pro version of the Custom Twitter Feeds plugin =

The main differences between the free version and Pro version of the Custom Twitter Feeds plugin are listed below. The extra features available in the Pro version are as follows:

- Display photos, videos, and gifs in your Tweets, with support for 3rd party services such as YouTube, Vimeo, Vine, and SoundCloud
- View Twitter media in a pop-up lightbox directly on your site
- Display Tweets in a multi-column Masonry layout
- Display your Twitter feed in rotating Carousels / Slideshows
- Twitter Cards (rich, standout links) are displayed in Tweets for links that support them
- Create advanced Twitter "Search" feeds or use the "Mentions" timeline
- Combine Twitter feeds of multiple types (i.e. User feeds and Hashtag Twitter feeds combined)
- Filter feeds by hashtag, word(s), or remove specific tweets
- Autoload more tweets when scrolling to the bottom of the Twitter feed
- Include Tweet replies ("in reply to")

You can see the demo of the Custom Twitter Feeds Pro version [here](https://smashballoon.com/custom-twitter-feeds/demo/?utm_source=wordpress&utm_campaign=ctf), and a video screencast [here](https://smashballoon.com/custom-twitter-feeds/#watch-video?utm_campaign=twitter-free&utm_source=readme&utm_medium=watchvideo).

= I'm receiving an error message when trying to display my Twitter feed =

If you receive an error message when trying to display your Twitter Feed widget then you can use the error reference below to diagnose the issue and find the relevant solution.

**Twitter Error:**
Could not authenticate you

**Causes:**
- You may be using Twitter access tokens that are not valid - See #1 below
- You checked the box to enter your own Twitter app information, but one or more of the fields are incorrect - See #2 below

**Twitter Error:**
Invalid or expired token

**Causes:**
- You may not have entered your Twitter access tokens or they are not valid - See #1 below

**Twitter Error:**
Unable to load tweets (with no other explanation)

**Causes:**
- You may need to raise the number of tweets to retrieve and display in your Twitter feed widget - See #3 below

**Twitter Error:**
Sorry, that Twitter page does not exist

**Causes:**
- There may be a typo in the Twitter screen name or hashtag you are attempting to use

**Twitter Error:**
Over capacity

**Causes:**
- Twitter's servers are over capacity so the API is unusable. This will correct itself after some time.

**Twitter Error:**
Connection timed out after 10000 milliseconds

**Causes:**
- Most likely this is due to your server blocking access to the Twitter API – See #4 below

**Solutions**

**#1 - Your Twitter access tokens might not be valid**

The easiest way to verify this is by going back to the Settings page for the Custom Twitter Feeds plugin and clicking the big blue Twitter login button on the "Configure" tab to get new Twitter access tokens. If you haven't set up your own Twitter App, the only way to use the Custom Twitter Feeds plugin is to click the big blue button to get a Twitter access token and Twitter access token secret that is compatible with the default Twitter client used by Smash Balloon.

**#2 - You have checked the box to use your own Twitter app information but one or more of the fields are incorrect**

All four fields, Twitter consumer token, Twitter consumer secret, Twitter access token, and Twitter access token secret, need to come from the Twitter app that you set up on Twitter.com. Try returning to your personal Twitter app management page https://apps.twitter.com/ and confirming that all four fields, Twitter consumer token, Twitter consumer secret, Twitter access token, and Twitter access token secret are entered correctly in the corresponding fields on the Custom Twitter Feeds plugin's "Configure" tab.

**#3 - You may need to raise the number of tweets to retrieve**

Navigate to the type of Twitter feed you are trying to display on twitter.com. For example, if you are displaying a Twitter feed from the screenname "smashballoon", go to https://twitter.com/smashballoon. Make sure there are tweets visible. Then click on the link "Tweets & replies". If there are a more recent replies than original tweets, there may be too many tweets being filtered out to display any. Twitter replies are removed by default. You can raise the number of tweets to retrieve initially by going to the Custom Twitter Feed Settings page, "Customize" tab, and navigating to the "Advanced" area. Then raise the "Tweet Multiplier" and test to see if your Twitter feed now displays tweets.

If you're still having trouble displaying your Tweets after trying the common issues above then please [contact support](https://smashballoon.com/custom-twitter-feeds/support/?utm_campaign=twitter-free&utm_source=readme&utm_medium=troubledisplaying) for assistance.

== Screenshots ==

1. By default the Custom Twitter Feeds plugin inherits styles from your theme
2. Display multiple Twitter feeds and customize each one
3. Custom Twitter Feeds Settings pages
4. Built in customization settings make customizing your Twitter feed widget easy
5. Additional styling options are built into the Custom Twitter Feeds plugin
6. Use handy shortcode options to customize individual Twitter feeds
7. To display a Twitter feed just copy and paste the shortcode into a Twitter widget or page

== Changelog ==
= 2.0.1 =
* Fix: When GDPR features were active, avatars would not display even after consent had been given.
* Fix: Fixed a PHP error that would occur with specific kinds of tweets being displayed.
* Fix: Not all data was cleared after uninstalling the plugin.

= 2.0 =
* Important: Minimum supported WordPress version has been raised from 3.5 to 4.1.
* New: Our biggest update ever! We've completely redesigned the plugin settings from head to toe to make it easier to create, manage, and customize your Twitter feeds.
* New: All your feeds are now displayed in one place on the "All Feeds" page. This shows a list of any existing (legacy) feeds and any new ones that you create. Note: If you updated from a version prior to v1.8 then you may need to view your feeds on your webpage so that the plugin can locate them and list them here.
* New: Easily edit individual feed settings for new feeds instead of cumbersome shortcode options.
* New: It's now much easier to create feeds. Just click "Add New", select your feed type, connect your account, and you're done!
* New: Brand new feed customizer. We've completely redesigned feed customization from the ground up, reorganizing the settings to make them easier to find.
* New: Live Feed Preview. You can now see changes you make to your feeds in real time, right in the settings page. Easily preview them on desktop, tablet, and mobile sizes.
* New: Color Scheme option. It's now easier than ever to change colors across your feed without needing to adjust individual color settings. Just set a color scheme to effortlessly change colors across your entire feed.
* New: You can now change the number of columns in your feed across desktop, tablet, and mobile.
* New: Easily import and export feed settings to make it simple to move feeds across sites.

= 1.8.4 =
* Tweak: When clearing the Twitter cache, caches from common page caching solutions are now also cleared.
* Tweak: Changed capability check from 'edit_posts' to 'manage_custom_twitter_feeds' when clearing the Twitter cache using AJAX.
* Tweak: An alert bubble is added to the Twitter Feeds menu item when there are new notifications available.

= 1.8.3 =
* Tweak: Added "noopener" attribute to hasthags and account tags linked in tweets.
* Fix: Fixed a compatibility issue with the Complianz Cookie Consent plugin integration.
* Fix: Fixed a compatibility issue with the Web Toffee GDPR Cookie Consent plugin integration.
* Fix: Bio text was missing from the header even when this feature was enabled.

= 1.8.2 =
* Tested with WordPress 5.8 update.
* Fix: "Display your feed" tab was showing the wrong shortcode for the "layout" setting available in the pro version.
* Fix: Fixed an issue with GDPR Cookie Consent by Web Toffee integration.

= 1.8.1 =
* Fix: Fixed several issues with GDPR Cookie Consent by Web Toffee integration.
* Tweak: Added an easy link to the [Pro demo](https://smashballoon.com/custom-twitter-feeds/demo/?utm_campaign=twitter-free&utm_source=readme&utm_medium=easypro)

= 1.8 =
* New: The locations of the Twitter feeds on your site will now be logged and listed on a single page for easier management. After this feature has been active for awhile, a "Feed Finder" link will appear next to the Feed Type setting on the plugin Settings page which allows you to see a list of all feeds on your site along with their locations.
* New: Added support for WordPress based translations using language files.
* Tweak: Changed the default method of retrieving posts to use the WP_HTTP class.
* Fix: Updated jQuery methods for compatibility with WordPress 5.7.

= 1.7 =
* New: Integrations with popular GDPR cookie consent solutions added: Cookie Notice by dFactory, GDPR Cookie Consent by WebToffee, Cookiebot by Cybot A/S, Complianz by Really Simple Plugins, and Borlabs Cookie by Borlabs. Visit the Twitter Feed settings page, Customize tab, Advanced section for more information.
* Tweak: Icon font support was discontinued. Only SVGs will be used for icons in feeds.
* Tweak: Twitter Intents JS updated to the latest version.

= 1.6.1 =
* Tweak: Added support for improved dashboard notices on the plugin settings page.
* Tweak: HTML attribute rel="noopener noreferrer" added to all outbound links for extra security.
* Fix: Fixed PHP warning "non-numeric value encountered" when setting the tweet multiplier option to something that wasn't a number.

= 1.6 =
* New: Updated icons in the feed to match Twitter.
* Tweak: Several CSS changes to make the Twitter feed text responsive with more themes.
* Fix: Removed debugging code causing issue when saving settings on the "Customize" tab.

= 1.5.1 =
* New: To help us improve the plugin we have added usage tracking so that we can understand what features and settings are being used, and which features matter to you the most. The plugin will send a report in the background once per week with your plugin settings and basic information about your website environment. No personal or sensitive data is collected (such as email addresses, Twitter account information, license keys, etc). You can opt-out by simply disabling the setting at: Twitter Feed > Customize > Misc > Enable Usage Tracking. See [here](https://smashballoon.com/custom-twitter-feeds/docs/usage-tracking/) for more information.
* Tweak: When a feed is from a Twitter account that has a lot of reply tweets, the plugin will collect more tweets initially for better performance.
* Tweak: Hashtag feeds have retweets filtered out by default for improved feed performance.
* Fix: Several strings updated to be translatable.

= 1.5 =
* New: Added a "Twitter Feeds" Gutenberg block to use in the block editor, allowing you to easily add a Twitter feed to posts and pages.
* Tweak: Added function ctf_init() to easily rerun JavaScript for the plugin.
* Tweak: Non Feeds for YouTube admin notices are removed when viewing settings pages for Feeds for YouTube.

= 1.4.1 =
* Tweak: Added aria-label attributes to SVG icons for improved accessibility.
* Fix: Fixed PHP warning that occurred when a URL in the tweet text did not have a full length URL available from the Twitter API.
* Fix: Using the setting to link the tweet text to Twitter would cause nested links and invalid HTML.
* Fix: Fixed Twitter logo not displaying if avatar, author, and date were hidden.

= 1.4 =
* New: Twitter logo added to the top right of each tweet to fit with Twitter's display guidelines. Customize the logo on the "Style" tab, "Author" area or hide it using the settings at Twitter Feeds > Customize > Show/Hide.
* New: Minified versions of JavaScript and CSS files now used.
* New: JavaScript file added to the source of the page only when the Custom Twitter Feeds shortcode is used on the page.
* New: SVGs used for icons instead of Font Awesome font file. You can switch back to using the Font Awesome font file using the setting at Twitter Feeds > Customize > Advanced.
* New: Tweets that are replies to the same Twitter account or mention the same account can be included in the Twitter feed widget by enabling the setting "Always include replies to self in the feed".
* New: Added a setting to completely disable Twitter intents widget.js file.
* Tweak: The HTML element used for icons has been switched from "i" to "span" for better accessibility.
* Tweak: Changed styling of Twitter media placeholder icons.
* Tweak: Combined widgets.js file with native JavaScript file for the plugin.
* Tweak: Twitter widgets.js will only be enqueued when "actions" are included in the Twitter feed.
* Tweak: Tweet text line height style set to 1.4.
* Fix: Bio text not displaying in header even when enabled.

= 1.3 =
* New: You can now choose to only display a certain amount of text characters in the Tweets in your Twitter widget, with a clickable link to display the rest. This is set to be 280 characters by default, but can be changed by using the following setting: Twitter Feeds > Customize > Style > Tweet Text > Text Length, or by using the "textlength" shortcode setting.
* Tweak: Twitter intents JavaScript not loaded on the page if tweet actions are removed
* Fix: Removed target="_blank" from div element

[See changelog for all versions](https://plugins.svn.wordpress.org/custom-twitter-feeds/trunk/changelog.txt).
