This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

ThinkTwit

Description

ThinkTwit is a highly customisable plugin that can output tweets from multiple users (something that very few other plugins can do successfully), #hashtag or keyword. It uses the Twitter Search JSON API v1.1 to access tweets which can be cached. It is very simple, yet flexible and easily customised. It can be placed on your WordPress page simply through drag and drop on the Widgets interface or through the use of Shortcode or Output Anywhere (PHP function call). Supports i18n!

Support: https://www.thepicketts.org/thinktwit/ or on Twitter @stephenpickett

Features:

  • Can be configured from Widgets settings (if displayed in sidebar)
  • Can be implemented using shortcode or Output Anywhere (PHP function call)
  • Contains default slimline CSS for integrated look and feel (can be turned off)
  • Easy to configure and customise (through settings and CSS)
  • Multiple instances can be deployed (like other widgets/plugins)
  • JavaScript is not required (unless no-caching is activated)
  • Can specify multiple usernames
  • Tweets can be filtered by #hashtag or keyword
  • You can select to filter between an AND or OR filter to either show tweets only containing specified usernames and hashtags or any of them
  • Can specify maximum number of tweets to display
  • Can specify maximum number of days back to display
  • Supports no-caching, to prevent caching of tweets by caching engines such as WP Super Cache
  • Supports cURL as a fallback method, if necessary
  • Supports optional caching of tweets and avatars
  • Cache can be manually cleared and will automatically update if the cache is empty
  • Can display the avatar of the Twitter user
  • Output can be filtered (using apply_filters)
  • Can optionally output “Follow @username” links
  • Automated cleanup process that runs periodically according to user setting
  • Internationalised using i18n meaning that if it isn’t in your language it’s easy to translate! See Other Notes for more details
  • Gracefully deals with Twitter errors and adds them to the PHP error log
  • Supports live updates of tweets when using no-caching (AJAX)

Requirements/Restrictions:

  • Works with WordPress 3.2 to 5.7.2, not tested with other versions nor re-tested on older versions than most current
  • Can be installed using the widgets sidebar
  • Can also be used via shortcode or Output Anywhere (PHP function call)
  • Uses Twitter REST API v1.1 Application-only authentication and therefore requires an application key (see installation)

I am looking for more people to translate ThinkTwit in to other languages, if you are interested please see “Internationalisation (i18n)”
under “Other Notes”.

Uninstall

To uninstall simply deactivate and then delete through the Plugins admin interface. All options and files will be automatically removed.

Internationalisation (i18n)

Currently the following languages are supported:

  • es_ES – Spanish in Spain (many thanks to Maria Ramos for contributing)
  • en_GB – English in Great Britain (default)
  • sr_RS – Serbian in Serbia (many thanks to [Ogi Djuraskovic] (https://firstsiteguide.com/) for contributing)

If your language is not listed and you would like to translate in to your language please do the following:

  1. Navigate to thinktwit/languages and take a copy of thinktwit.pot.
  2. Open in the language editor of your choice e.g. POedit.
  3. Translate each line until you’ve done them all.
  4. Save as thinktwit-lang_COUNTRY.po e.g. thinktwit-en_GB.po – see List of all Locales for more.
  5. Go to Contact and fill in the form appropriately.
  6. I will get in touch and ask that you respond with the translated file and a link to your site (if desired).

Screenshots

  • screenshot-1.png shows ThinkTwit working as a widget on the the ThinkTwit development homepage showing just usernames
  • screenshot-2.png shows ThinkTwit working as a widget on the the ThinkTwit development homepage showing just hashtags
  • screenshot-3.png shows ThinkTwit working as a widget on the the ThinkTwit development homepage filtered by usernames and hashtags
  • screenshot-4.png shows ThinkTwit working via shortcode within a blog post on the the ThinkTwit development homepage
  • screenshot-5.png shows ThinkTwit working via a Output Anywhere (PHP function call) in the header of the ThinkTwit development homepage
  • screenshot-6.png shows the settings that can be configured within the widget

Installation

Obtaining a Twitter authentication key

  1. Go to https://dev.twitter.com/apps/new

  2. Login using your standard Twitter credentials

  3. Complete the form:

  • Name: ThinkTwit – [site name]
  • Description: ThinkTwit plugin
  • Website: [url of your website]
  • Callback URL: [url of your website]
  1. Make a note of your “Consumer key” and “Consumer secret”

Installing plugin

  1. Unpack the zip file and upload the thinktwit folder to the /wp-content/plugins/ directory, or download through the Plugins menu
    in WordPress

  2. Activate the plugin through the Plugins menu in WordPress

  3. Navigate to Settings->ThinkTwit from the WordPress Dashboard

  4. Enter the “Consumer key” and “Consumer secret” obtained earlier and save your settings

Updates are automatic. Click on Upgrade Automatically if prompted from the admin menu. If you ever have to manually
upgrade, simply replace the files with those from the new version.

Configuring widget

  1. Go to Appearance and then Widgets and drag ThinkTwit to your sidebar

  2. Fill in the options as required and then save

Configuring shortcode

ThinkTwit can be used in any page or post, or anywhere else configured to use shortcodes, using the following syntax:

[thinktwit
  widget_id=0
  usernames="stephenpickett"
  hashtags="thinktwit"
  hashtag_filter=0
  username_suffix=" said: "
  limit=5
  max_days=7
  update_frequency=-1
  show_username="username"
  show_avatar=1
  show_published=1
  show_follow=1
  links_new_window=1
  no_cache=0
  live_update_freq=0
  debug=0
  time_this_happened="This happened "
  time_less_min="less than a minute ago"
  time_min="about a minute ago"
  time_more_mins=" minutes ago"
  time_1_hour="about an hour ago"
  time_2_hours="a couple of hours ago"
  time_precise_hours="about =x= hours ago"
  time_1_day="a day ago"
  time_2_days="almost 2 days ago"
  time_many_days=" days ago"
  time_no_recent="There have been no recent tweets"
 ]

Configuring Output Anywhere

ThinkTwit can be called within templates and other areas where you can use PHP using the following syntax:

<?php $args = array(
    'widget_id'          => 0,
    'usernames'          => "stephenpickett",
    'hashtags'           => "thinktwit",
    'hashtag_filter'     => 0,
    'username_suffix'    => " said: ",
    'limit'              => 5,
    'max_days'           => 7,
    'update_frequency'   => 0,
    'show_username'      => "name",
    'show_avatar'        => 1,
    'show_published'     => 1,
    'show_follow'        => 1,
    'links_new_window'   => 1,
    'no_cache'           => 0,
    'live_update_freq'   => 0,
    'debug'              => 0,
    'time_this_happened' => "This happened ",
    'time_less_min'      => "less than a minute ago",
    'time_min'           => "about a minute ago",
    'time_more_mins'     => " minutes ago",
    'time_1_hour'        => "about an hour ago",
    'time_2_hours'       => "a couple of hours ago",
    'time_precise_hours' => "about =x= hours ago",
    'time_1_day'         => "a day ago",
    'time_2_days'        => "almost 2 days ago",
    'time_many_days'     => " days ago",
    'time_no_recent'     => "There have been no recent tweets");

    echo ThinkTwit::output_anywhere($args); ?>

Shortcode/Output Anywhere Parameters

widget_id: integer – You should give this a unique id for caching or styling.

usernames: string – The list of Twitter usernames to output tweets for.

hashtags: string – The list of hashtags to output tweets for.

hashtag_filter: string – 1 indicates that usernames AND hashtags must both exist in a tweet, 0 indicates that either can exist.

username_suffix: string – The text that should appear after a username e.g. ” said: “.

limit: int – The maximum number of tweets to display.

max_days: int – The maximum age in days of the tweets to be displayed.

update_frequency: int – Minus 1 indicates live (uncached), minus 2 indicates paused, 0 indicates live (cached), and anything else
indicates the number of hours between getting updates from Twitter.

show_username: string – None indicates no username should be shown, name indicates the user’s full name should be shown and
username indicates the user’s username should be shown.

show_avatar: boolean – Indicates whether the Twitter user’s avatar should be displayed – 1 for true and 0 for false.

show_published: boolean – Indicates whether the time the tweet was made should be displayed e.g. “This happened a day ago” – 1 for true and 0 for false.

show_follow: boolean – Indicates whether or not to show a “Follow @username” link for each username.

links_new_window: boolean – Indicates whether links should be opened in a new window – 1 for true and 0 for false.

no_cache: boolean – Indicates whether or not to use no-caching – 1 for true and 0 for false.

live_update_freq: int – The frequency of live updates (zero for off).

debug: boolean – Indicates whether to turn on debugging mode – 1 for true and 0 for false.

time_this_happened: string – Time prefix (default: “This happened”).

time_less_min: string – Time less than 1 minute (default: “less than a minute ago”).

time_min: string – Time approximately 1 minute ago (default: “about a minute ago”).

time_more_mins: string – Time more than 1 minute ago (default: ” minutes ago”).

time_1_hour: string – Time approximately 1 hour ago (default: “about an hour ago”).

time_2_hours: string – Time approximately 2 hours ago (default: “a couple of hours ago”).

time_precise_hours: string – Time more than 2 hours ago (default: “about =x= hours ago”). NOTE: =x= should be used to insert the number of hours.

time_1_day: string – Time approximately 1 day ago (default: “a day ago”).

time_2_days: string – Time approximately 2 days ago (default: “almost 2 days ago”).

time_many_days: string – Time more than 2 days ago (default: ” days ago”).

time_no_recent: string – Output when there are no tweets to display (default: “There have been no recent tweets”).

NOTE: You can leave out any parameter to use the default, but be aware to change the unique id if you are using Output Anywhere in more than one place.

FAQ

When I add the widget I cannot expand the menus, what is wrong?

There is a known issue where the ThinkTwit sub menus will not expand after you add a widget for the first time. Please simply reload the widgets
page and it will now work going forwards.

How many tweets will be shown?

This is determined by your settings within the widget or your custom call. The default is set to 5.

How long back will tweets be shown for?

If using the update frequency “Live (uncached)” ThinkTwit will show tweets that have occurred as far back as “max days” (up to the last 7
days, due to restrictions in the Twitter API). However, any other option will utilise ThinkTwit’s own cache and will therefore display anything
within the cache (up to “max days”). The exception to this is when the “Paused” option is selected – this will retain tweets (and display those
tweets) indefinitely (until the update frequency is changed from “Paused”).

What will happen if I haven’t tweeted in the last 7 days?

If you aren’t caching tweets then a message will be shown stating: “There have been no tweets for the past 7 days”, but if you are caching
tweets then it will simply show the tweets stored in the cache, even if they are older than 7 days. This message can be customised within the
settings.

How can I style ThinkTwit?

ThinkTwit uses the widget API so should be styled correctly by your theme. It has some default CSS but you may, however, wish to turn this
off (in the ThinkTwit Settings) and add your own. If so you should find the following information handy:

  • ThinkTwit essentially outputs tweets as a list
  • The list container can be accessed using ol.thinkTwitTweets
  • All tweets can be accessed using ol.thinkTwitTweets li.thinkTwitTweet
  • Individual tweets can be accessed using ol.thinkTwitTweets #tweet-n where n is the number of the tweet
  • Odd and even tweets can be accessed using ol.thinkTwitTweets li.thinkTwitOdd and ol.thinkTwitTweets li.thinkTwitEven accordingly
  • The author within a tweet can be accessed using ol.thinkTwitTweets li.thinkTwitTweet a.thinkTwitAuthor
  • The author suffix within a tweet can be accessed using ol.thinkTwitTweets li.thinkTwitTweet a.thinkTwitSuffix
  • The content of a tweet can be accessed using ol.thinkTwitTweets li.thinkTwitTweet a.thinkTwitContent
  • The published time within a tweet can be accessed using ol.thinkTwitTweets li.thinkTwitTweet span.thinkTwitPublished
  • The “no tweets” message can be accessed using ol.thinkTwitTweets li.thinkTwitNoTweets
  • The AJAX error message (“Error: Unable to display tweets”) can be accessed using `p.thinkTwitError’

NOTE: Be sure to use the id to access each style in order to over-write the default CSS.

How do I stop caching in caching engines such as WP Super Cache?

Turn on no-caching in the widget settings.

How does no-caching work?

Instead of outputting HTML it outputs Javascript. The Javascript uses AJAX (via jQuery) to make a call to a method that returns the
HTML which is then inserted in to the correct location.

I’m using no-caching but nothing appears below the title

Your theme is probably not setup properly. AJAX requires a location to insert the returned data from the server-side call. ThinkTwit
puts it in to the div that contains the widget. A WordPress theme written correctly should output a unique id for each widget that is
output. Inform the developer of your theme to have the following (or something similar) in their register_sidebar function:

'before_widget' => '<div id="%1$s" class="widget %2$s">'

I’m getting strange errors or no output

You may need to clear and rebuild your cache – please use the Clear Cache button within Settings -> ThinkTwit in the Admin area, and then reload
the page containing ThinkTwit. Otherwise please re-install – see uninstall instructions.

How do I prevent use of nofollow tags in my URLs?

You can apply a filter – see the following URL for an example:

https://digwp.com/2010/02/remove-nofollow-attributes-from-post-content/

What are the options “Show when published” and “Update frequency”?

  • Show when published – indicates whether the time the tweet was made is shown e.g. “This happened 1 day ago”
  • Update frequency – indicates how often Twitter should be contacted to get a list of tweets. Use this
    to turn on or off caching, and to decide how often to update the cache

Why aren’t my avatar images showing?

The uploads/thinktwit/avatars folder may not exist or it may not be writeable (this folder is required for caching avatars). Check that your WordPress
installation has the write permissions to the uploads folder.

How often do avatars get updated?

Once every 24 hours (assuming a request is made in this period). This value is not currently configurable.

Why do I constantly see the message “There have been no recent tweets”?

It is likely that you have not entered your Twitter API credentials. Please see the Installation tab for more details and check your PHP
error log for any errors (such as incorrect authentication or rate limiting with Twitter).

Where can I see ThinkTwit errors?

You can look in the normal error log for your PHP setup. By default this is the error_log file within the root server of your WordPress
installation but this may differ for each installation so if you are unsure please ask your server administrator.

Why do I keep seeing the following error “ThinkTwit error: Twitter responded with an unexpected error – [message=Rate limit exceeded, code=88]”?

This means that you are making too many requests to Twitter. If you are not using caching you should turn this on, and if you are already using it then
you should decrease the frequency that requests are made e.g. change update frequency from “Live (cached)” to “Hourly”.

What is live updates and how does it work?

Live updates allow periodic updates to the user’s screen every set number of seconds i.e. if this was set to 10 seconds then every 10 seconds a call would
be made to ThinkTwit to request any new Tweets. To use this feature you must have no-caching turned on.

NOTE: Even though you may be have a high frequency set this does not mean you will definitely get new tweets within that frequency. This is dependent upon
the frequency of updates that you have set in the update frequency for that widget, shortcode or your Output Anywhere call. If you are using caching then
the call will be made to the ThinkTwit cache and not Twitter itself – it is recommended that you use caching and not live calls if using live updates or
else you may find yourself blocked from Twitter.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“ThinkTwit” is open source software. The following people have contributed to this plugin.

Contributors

“ThinkTwit” has been translated into 2 locales. Thank you to the translators for their contributions.

Translate “ThinkTwit” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.7.1

  • (17 Aug 2021) Sanitised multiple inputs and escape output to remove further risk of cross site script security or injection issues and fixed an issue
    where CSS was shifting images to the left instead of just avatars – added a class “avatar” to images

1.7.0

  • (03 Jul 2021) Modified logo and banner to remove risk of copyright issue, sanitised multiple inputs and outputs to remove risk of cross site script
    security or injection issues, replaced file-access and cURL with wp_remote_get(), made an improvement to calling default CSS file and now stores avatars
    in the uploads directory instead of within the plugin directory

1.6.6

  • (15 Dec 2018) Confirmed compatibility with WordPress 5.0.1, fixed an error when saving settings for the first time and updated upgrade code to
    ensure that it triggers for all version older than 1.6.0

1.6.5

  • (10 Dec 2015) Fixed an incompatibility with WordPress 4.4 by renaming the Error class to ThinkTwitError

1.6.4

  • (16 Aug 2015) Removed support for PHP 4 style class constructors, fixed “Reset Settings” function in the widget, added automatic live update
    functionality when using no-caching (AJAX) and fixed an issue within no-caching where the admin-ajax page was not found

1.6.3

  • (07 Mar 2015) Added support for the Serbian language – many thanks to Ogi Djuraskovic of https://firstsiteguide.com for this!

1.6.2

  • (16 Feb 2015) Very minor update for cURL users – fixes an issue where getting the token fails as it is not using cURL

1.6.1

  • (28 Jan 2015) Change use of “<?=” to “<?php echo” for older versions of PHP that may not have “short_open_tag” turned on, fixed the uninstall
    process, fixed an error when storing cache names but none have previously been stored and made a small change to the widget form to simplify
    saving of widget settings, added shortcut links to the plugin page (Settings, Support and Donate), added a redirect to Settings page after
    installation (or activation when consumer key or secret is missing) and added a “Paused” option to “Update frequency” to prevent the cache
    from updating

1.6.0

  • (26 Oct 2014) Fixed an issue with tweets not always being picked up from Twitter due to too many requests for the authentication token, fixed
    cleanup process not running, added translation to some missed areas, fixed a warning when filtering out old usernames, fixed the conversion of
    relevant Tweet content that wasn’t being correctly turned in to links, updated the AJAX handler to use the recommended method (using
    admin-ajax.php), updated the Twitter Follow Button to use the new code but also used the IFRAME method to ensure it works with “Prevent Caching”,
    added a Clear Cache button in the Settings, added the ability to filter usernames and hashtags using AND or OR searches, added code to load
    tweets when caching is turned on but the cache is empty, updated the Tweet object (which holds all tweets) to add some functionality and more
    clearly define the content and functions, and added logging functionality to log error messages to PHP error log

1.5.3

  • (16 Apr 2014) Very minor update to Settings page where expected values not appearing throws a warning, and also updated compatibility version
    in readme

1.5.2

  • (29 Mar 2014) Big improvements to debugging: amended debug output to add the frequency of updates and use of no caching, put the messages in
    order of how they appear in the widget menu, now output actual menu options names and values rather than system values, and added formatting to
    aid identifying option names. Additionally, removed a potential security vulnerability that could allow an unauthorised user to write to the
    images folder and added a setting to allow the default style sheet to be turned off

1.5.1

  • (09 Feb 2014) A user of another plugin (AI Twitter Feeds) that had borrowed the follow button code reported an issue that was a result of
    an update to the follow button script from Twitter. This basic update simply updates the script so you should no longer get the following
    error: “Uncaught ReferenceError: twttr is not defined”

1.5.0

  • (25 Nov 2013) Fixed an issue preventing hashtags from working properly and added i18n internationalisation support, with Spanish the first
    language to be supported – many thanks to Maria Ramos at webhostinghub.com!

1.4.4

  • (13 Nov 2013) Replaced use of split() with explode() as the former has been deprecated, allowed entering of empty usernames and hashtags,
    fixed the API call so that it doesn’t search for mentions of the first username but actually searches for tweets by the first username
    and re-instated an updated version of the old avatar deletion code which runs periodically and takes account of tweets added from chosen
    hashtags

1.4.3

  • (19 Oct 2013) Updated the readme.txt, and both shortcode and Output Anywhere as there were some inconsistencies in naming but also some of
    the instructions were out of date and hence wrong. Should resolve any issues anyone is having with either of these or with multiple usage
    on one page

1.4.2

  • (14 Sep 2013) Renamed constants to prefix with ThinkTwit so that they don’t interfere with constants from other plugins, changed help on
    setting up Twitter app as name needs to be unique, added hashtag filtering in cache, added ability to search for hashtags without usernames
    and changed hashtag searching to be OR rather than AND

1.4.1

  • (02 Jun 2013) Corrected failure to update ThinkTwit version stored in the database, made a minor addition to the new settings page that
    additionally outputs other information (version, cache names and date of last update to cache) that is stored in the settings which may be
    useful/interesting, fixed failure to limit number of tweets by specified value when showing live updates and fixed the follow button not loading
    when using no-caching

1.4.0

  • (25 May 2013) Updated to use Twitter REST API v1.1 – please note that after 11th June 2013 any version of ThinkTwit below 1.4.0 WILL NOT WORK
    due to changes in Twitter’s API. You MUST follow the instructions in Installation in order to make ThinkTwit work with this new version – please
    read these before upgrading/installing!

1.3.11

  • (30 Mar 2013) Modified “Live (uncached)” mode to clear out the cache so that it can be used to refresh your cache and fixed display of
    hashtags that was causing a search error in Twitter (if you are caching tweets please set to uncached to clear out the incorrect tweets and
    then you can start caching again)

1.3.10

  • (14 Oct 2012) Altered the way ThinkTwit downloads avatars so that it now uses the profile image URL from the JSON output, added a check to
    ensure that tweets were actually returned from Twitter and made a change to prevent output of Follow script if Show follow links is no

1.3.9

  • (13 Sep 2012) HOTFIX: Twitter have deprecated output of XML on the Twitter Search 1.0 API which itself has been deprecated which has caused
    strange output resulting in italics everywhere – this update switches to JSON on the version 1.0 API to immediately fix the issue until
    ThinkTwit can be re-written on the Twitter Search 1.1 API

1.3.8

  • (09 Sep 2012) Minor update: added “Reset Settings” link to options and replaced settings roll up workaround with proper jQuery code

1.3.7

  • (02 Sep 2012) Added the ability to filter tweets by hashtag/keyword (thanks to Martijn Pantlin for the code), improvements to data loading
    when entries do not exist (rare, mostly during upgrades) and the option to show “Follow @username” links

1.3.6

  • (14 Aug 2012) Removed code which was potentially incorrectly removing non-images (especially root index.php) when deleting old avatars

1.3.5

  • (11 Jul 2012) Added code to delete old avatars (doesn’t work if owner of avatars is different to running process), supress errors on chmod
    and delete of directories and added code to remove all options on uninstallation

1.3.4

  • (24 Jun 2012) Detects when Twitter displays a redirect URL when using the avatar API and downloads avatar from that URL instead, ignores
    errors when trying to get the file size of an avatar or when getting tweets and checks if the avatar that is supposed to be displayed exists

1.3.3

  • (02 Jun 2012) get_twitter_avatar() replaced with Twitter avatar API, added ability to cache user avatars and changed wording of TIME_1_DAY
    from “about a day ago” to “yesterday”

1.3.2

  • (12 Feb 2012) Added ThinkTwit versioning for making future upgrades more smooth, removed extraneous parameter when calling sort_tweets
    and added settings that stores current ThinkTwit version and a list of all the cache names used

1.3.1

  • (10 Nov 2011) Minor fix to resolve “file_get_contents” bug introduced in 1.3.0

1.3.0

  • (25 Oct 2011) MAJOR UPDATES:
  • Re-organisation of FAQ and installation instructions
  • Author renamed to username in various places for consistency
  • Some db names renamed for consistency
  • Use of apostrophes changed for consistency
  • Renamed PHP function call (thinktwit_output) to output_anywhere and altered it to use args instead of listing each parameter
  • Moved shortcode and Output Anywhere functions in to ThinkTwit class
  • Added more default value constants
  • Introduced default stylesheet
  • Fixed time output error when using no-caching
  • Added no-caching to shortcodes and Output Anywhere

1.2.2

  • (14 Oct 2011) Fixed incorrect PHP function call example in FAQ, fixed incorrect “Show Username” type in FAQ, fixed incorrect
    boolean values in FAQ, removed silly copyright statement in comments, added link to FAQ within Plugins description to aid use
    of shortcode, fixed (intermittent) bad check of boolean for displaying avatars and function call and added limit to the maximum
    days of tweets to be output (NOTE: if upgrading and already using PHP function call please add the max_days parameter after limit
  • parameter 5)

1.2.1

  • (07 Aug 2011) Added donation links and expandable menus within the widget settings

1.2.0

  • (05 Aug 2011) MAJOR UPDATES:
  • Massive update to the readme, including updated screenshots
  • Re-write of code to make better use of object orientation and private/public functions
  • More flexibility in shortcodes and output anywhere function (thinktwit_output) – including ability to use caching
  • Introduced ability to alter time output text e.g. “This happened 16 minutes ago”
  • Added class to style error message when using AJAX
  • General readability improvements to code

1.1.10

  • (05 Jun 2011) Added ability to apply your own filters and added nofollow tags to links

1.1.9

  • (29 May 2011) Added ability to target individual tweets, odd and even tweets, content and author suffix and linked the avatar to the
    user’s profile

1.1.8

  • (28 May 2011) Added ability to include the Twitter poster’s avatar

1.1.7

  • (14 May 2011) Fixed cache not saving with the widgetid (meaning all instances will share the same cache), allows cache size to grow
    and shrink according to the size limit in the widget settings, only outputs cached tweets by users whose name is in the usernames list
    within settings and sorted methods in to alphabetical order to aid searching of methods

1.1.6

  • (13 May 2011) Fixed caching to prevent over-writing of cache and ensure it instead adds them to it (removing anything at the end if
    necessary) and added live option that uses the cache (so you can check for updates and update the cache before displaying cached tweets,
    this ensures that if Twitter is not available it will still display tweets)

1.1.5

  • (22 Apr 2011) Added caching of tweets (optional) and added tweet shortcodes

1.1.4

  • (09 Mar 2010) Removed some extranous code, added option to show username or Twitter name and changed list to ordered list for semantics

1.1.3

  • (03 Mar 2010) Minor change where a variable was being over-written but it had no real affect and updated screenshot-2.png

1.1.2

  • (03 Mar 2010) Added no-caching (to prevent ThinkTwit from being cached by caching engines), an option to use CURL to access
    the Twitter API, optional debug messages, updated readme and moved development to https://www.thepicketts.org

1.1.1

  • (16 Feb 2010) Removed unnecessary PHP command that was causing annoying error in widget screen (though not causing a problem) and
    updated readme with new FAQ and uninstall instructions

1.1.0

  • (11 Feb 2010) MAJOR UPDATES:
  • Rewritten 80% of the code to correctly use widget API
  • No longer need to spexify suffixes and prefixes – correctly hardcoded to use unordered lists
  • Added classes for more flexible CSS changes
  • Original settings page removed – all settings now made in widget NOTE: TAKE NOTE OF YOUR SETTINGS BEFORE UPDATING!
  • Updated default CSS for basic use – please replace original with this and update as necessary
  • No break spaces (” “) no longer required to replace spaces in settings
  • FAQ removed as there was only one question that is no longer relevant
  • Updated screenshots to reflect new settings configuration

1.0.6

  • (09 Feb 2010) Added temporary “no tweets in the last 7 days” notice (if no tweets are visible) until caching is implemented

1.0.5

  • (09 Feb 2010) Fixed title not being saved in Settings, also added option to open links in new window and added FAQ to the readme

1.0.4

  • (04 Feb 2010) Added option to change the widget title and replaced spaces with no-break spaces ( ) in default username suffix

1.0.3

  • (03 Feb 2010) Removed some spaces at top of file that may be causing issues for some people

1.0.2

  • (03 Feb 2010) Removed automatic deletion of database fields on deactivation and updated readme

1.0.1

  • (27 Jan 2010) Fixed incorrect output of ampersands and apostrophes

1.0.0

  • (21 Jan 2010) Initial Release
VIP777 login Philippines Ok2bet PRIZEPH online casino Mnl168 legit PHMAYA casino Login Register Jilimacao review Jl777 slot login 90jili 38 1xBet promo code Jili22 NEW com register Agila Club casino Ubet95 WINJILI ph login WINJILI login register Super jili168 login Panalo meaning VIP JILI login registration AGG777 login app 777 10 jili casino Jili168 register Philippines APALDO Casino link Weekph 50JILI APP Jilievo xyz PH365 casino app 18JL login password Galaxy88casino com login superph.com casino 49jili login register 58jili JOYJILI apk Jili365 asia ORION88 LOGIN We1win withdrawal FF777 casino login Register Jiligo88 philippines 7777pub login register Mwgooddomain login SLOTSGO login Philippines Jili188 App Login Jili slot 777 Jili88ph net Login JILIMACAO link Download Gcash jili login GG777 download Plot777 app download VIPPH register Peso63 jili 365.vip login Ttjl casino link download Super Jili 4 FC178 casino - 777 slot games JILIMACAO Philippines S888 register voslot LOVE jili777 DOWNLOAD FK777 Jili188 app CG777 app 188 jili register 5JILI login App Download Pkjili login Phdream Svip slot Abcjili6 App Fk777 vip download Jili888 register 49jili VIPPH register Phmacao co super Taya777 link Pogo88 real money Top777 app VIP777 slot login PHMACAO 777 login APALDO Casino link Phjili login Yaman88 promo code ME777 slot One sabong 888 login password PHMAYA casino Login Register tg777 customer service 24/7 Pogibet slot Taya777 org login register 1xBet live Acegame888 OKBet registration JILIASIA Promotion Nice88 voucher code AgilaClub Gaming Mnl168 link Ubet95 free 50 PHMAYA casino login JLBET 08 Pb777 download 59superph Nice88 bet sign up bonus Jiliyes SG777 download apk bet88.ph login JILIPARK casino login Register Philippines PHMAYA APK CC6 casino login register mobile PHMACAO com download MWPLAY app JILIPARK Download Jili999 register link download Mnl646 login Labet8888 download 30jili jilievo.com login Jollibee777 open now LOVEJILI 11 18JL casino login register Philippines JILIKO register Philippines login Jililuck 22 WJPESO casino PHMAYA casino login Jili777 login register Philippines Ttjl casino link download W888 login Register Galaxy88casino com login OKBet legit tg777 customer service 24/7 Register ROYAL888 Plot777 login Philippines BigWin Casino real money PHLOVE 18JL PH 18JL casino login register Philippines SG777 Pro Taya777 pilipinong sariling casino Jiligames app MNL168 free bonus YesJili Casino Login 100 Jili casino no deposit bonus FC178 casino free 100 Mwcbet Download Jili888 login Gcash jili download JILIMACAO 123 Royal888 vip 107 Nice888 casino login Register FB777 link VIPPH app download PHJOIN 25 Ubet95 legit phcash.vip log in Rrrbet Jilino1 games member deposit category S888 live login FF777 download FC777 VIP APK ME777 slot Peso 63 online casino OKGames app Joyjili customer service superph.com casino FB777 Pro Rbet456 PH cash online casino Okbet Legit login taruhan77 11 VIPPH 777Taya win app Gogo jili 777 Plot777 login register Bet99 app download Jili8989 NN777 VIP JP7 fuel Wjevo777 download Jilibet donnalyn login Register Bossjili ph download 58jili login registration YE7 login register FC777 new link login 63win register Crown89 JILI no 1 app Jili365 asia JLBET Casino 77PH fun Jili777 download APK Jili8 com log in CC6 casino login register mobile ph365.com promotion phjoin.com login register 77PH VIP Login download Phdream live chat Jlslot2 Me777 download Xojili legit PLDT 777 casino login Super Jili Ace Phdream 44 login Win888 casino JP7 Bp17 casino login TTJL Casino register FB777 slot casino Jili games online real money phjoin.com login register BET99 careers ORION88 LOGIN Plot777 login Philippines Labet8888 login JILI Official Pogibet app download PH777 casino register LOVEJILI app Phvip casino VIP jili casino login PHMACAO app 777pnl legit YE7 casino online Okbet download CC6 bet app 63win club Osm Jili GCash LOVEJILI 11 Www jililive com log in Jili58 casino SuperAce88 JiliLuck Login Acegame 999 777pnl promo code MWPLAY good domain login Philippines Pogo88 app Bet casino login Superph98 18jl app download BET999 App EZJILI gg 50JILI VIP login registration Jilino1 new site pogibet.com casino Jili Games try out Gogojili legit 1xBet Aviator WINJILI ph login Jili168 register How to play Jili in GCash 777pnl PHDream register login JILISM slot casino apk FB777 c0m login EZJILI Telegram MWCASH88 APP download Jili88 vip03 APaldo download 1xBet 58JL Casino 58jl login register Jili scatter gcash OKJL slot jili22.net register login 10phginto APaldo 888 app download 1xBet live FC178 Voucher Code 58jl Jili888 ph Login 365 Jili casino login no deposit bonus JP7 VIP login PHBET Login registration 58jili login registration VVJL online Casino Club app download Jili77 login register Jili88 ph com download KKJILI casino WJ peso app Slot VIP777 BigWin69 app Download Nice88 bet Suhagame philippines Jiliapp Login register Qqjili5 Gogo jili helens ABJILI Casino OKJL download 1xBet login mobile Pogibet 888 777 game Okgames casino login Acegame888 Bet86 promotion Winph99 com m home login JP7 VIP login 20phginto VIPPH register KKJILI casino OKJILI casino Plot777 app download NN777 register bossphl Li789 login Jiligo88 app Mwcbet Download Betjilivip Https www BETSO88 ph 30jili Https www BETSO88 ph Jilievo Club Jili888 register Jili777 download APK JILI77 app download New member register free 100 in GCash 2024 Royal888casino net vip JOLIBET withdrawal MW play casino Jili365 login FB777 Pro Gold JILI Bet99 registration 55BMW red envelope Bet199 login philippines JILI188 casino login register download Phjoin legit or not Bigwin 777 Bigwin pro Apaldo PH pinasgame JILIPARK Login registration JiliApp ph04 Ph143 Jili168 login app Philippines MW Play online casino APK 77tbet register 8k8t Bigwin casino YE7 Download App Ph365 download apk Acejili Ph888 login S888 juan login 63win withdrawal Okbet cc labet 8888.com login password Mwbet188 com login register Philippines MNL168 net login registration kkjili.com download Jili888 Login registration Abc Jili com Download JILIPARK casino login Register Download AbcJili customer service live777. casino Jilievo casino jilievo APP live casino slots jilievo vip Jolibet legit PH888 login Register 888php register 55BMW win Mwbet188 com login register Philippines AbcJili customer service Jili88 ph com app 200Jili App MAXJILI casino ROYAL888 deposit mi777 Jili games free 100 ACEGAME Login Register Jilibet donnalyn login Voslot register Jilino1 live casino 18jl login app apk JILI Vip777 login Phtaya login Super Ace casino login Bigwin 777 Ubet95 free 190 superph.com casino Jili22 NEW com register SG777 win Wjpeso Logo 1xBet login mobile Jili88 casino login register Philippines sign up Okbet cc Agg777 slot login Phv888 login P88jili download jiliapp.com- 777 club Fish game online real money One sabong 888 login password QQJili Taya365 slot mnl168.net login Taya365 download Yes Jili Casino PHMACAO APK free download 365 casino login Bigwin 29 JILISM slot casino apk Wow88 jili777.com ph 888php login 49jili VIP Jilino1 legit SG777 slot Fish game online real money Voslot free 100 18jl login app apk OKJL app Jili22 NEW com register Nice88 free 120 register no deposit bonus Sugal777 app download 288jili PHJOIN VIP com Register Jl77 Casino login KKjili com login Lovejili philippines Pogo88 casino SLOTSGO VIP login password Jili22 net register login password Winph 8 we1win 100 Jili slot 777pnl promo code Sg77701 Bet88 download for Android PH365 casino Royal Club login Jili88 casino login register MWPLAY login register Jilibay Promotion 7SJILI com Register FC777 casino link download Royal meaning in relationship OKBET88 AbcJili customer service 777ph VIP BOSS JILI login Register 200Jili App KKJILI casino login register maxjili Mwcbet legit JILIASIA 50 login Milyon88 com casino login 8k8app17 Royal slot Login Phmacao rest 338 SLOTSGO Ph888 login PHGINTO com login YY777 app Phdream register Jili22 net register login password Lucky Win888 Jiligames API Agila club VIP 77PH VIP Login download Acegame888 register PHMAYA Download Jili88 online casino 7XM Lovejili philippines 63win register Jilimax VOSLOT 777 login 18JL Casino Login Register JILIASIA 50 login 50JILI VIP login registration 7XM com PH Nice888 casino login Register 58jl Jili168 casino login register download Timeph philippines 90jilievo Jili88 casino login register OKBet legit JILI slot game download Bet99 promo code 58jili app 55BMW com PH login password KKjili casino login bet999 How to play Jili in GCash BigWin69 app Download OKJL Milyon88 com casino login phdream 888php register Ph888 PH777 registration bonus JLBET Asia LOVEJILI download Royal Casino login 646 ph login Labet8888 review JLBET Casino Jili888 ph Login Wjpeso Wins JILIMACAO 666 Jiliplay login register JILIAPP com login Download JiliLuck download WIN888 PH JL777 app Voslot777 legit Pkjili login 20jili casino Jolibet login registration Phjoin legit or not Milyon88 com casino register JILI apps download 88jili login register Jili 365 Login register download 11phginto Jili777 vip login Ta777 casino online Swertegames Taya365 download 777PNL online Casino login Mi777 join panalo 123 JILI slot 18jili link Panalo lyrics Jiliplay login philippines yaman88 Bet88 login Jili888 Login registration FF777 TV Ok2bet app Pogibet casino philippines Www jilino1 club WOW JILI secret code AB JILI Jili168 online casino BET99 careers Go88 slot login JILI Vip777 login CG777 Casino link OKBet GCash www.50 jili.com login WINJILI download Lucky bet99 Acegame888 77ph com Login password ACEGAME Login Register ACEGAME casino Swerte88 login password Wj slots casino APALDO Casino Phjoin slot JLBET com JLBET ph Taya777 org login 49jili slot Svip slot Jili77 download APK 200jiliclub Bet199 philippines Jili888 Login registration 88jili withdrawal phjoin.com login register Swerte88 login registration Voslot777 legit Superph11 AAA JILI app download Www jililive com log in VIP777 Casino login download Jili77 download APK Jilibet donnalyn login Register JILICC sign up Pogibet app download www.mwplay888.com download apk Jili68 Jililuck App Download APK Yy777 apk mod Jili77 vipph.com login labet8888.com app Phdream live chat Ph646 login register mobile 7777pub download Jolibet Fortune Tree 90JILI app 18JL login Philippines JLSLOT login password 50JILI fun m.nn777 login 88jili withdrawal PH Cash Casino APK 888PHP Casino LINK Boss jili app download Jili999 login register FB777 download APK Free 100 promotion JILIPARK Download VIP PH casino JILIHOT ALLIN88 login 8K8 com login PHMAYA casino login 58jili withdrawal Ubet95 free 100 no deposit bonus KKJILI online casino M GG777 100jili APP JILI888 slot download PHBET88 Jili Games demo 1xBet OKJL Casino Login Nice888 casino login Register Betso88 App download APK VIP777 app Gcash jili register 1xBet registration 58jili withdrawal Jili63 Suhagame23 218 SLOTSGO AGG777 login Philippines Bay888 login JILIVIP 83444 PHCASH com casino login Jilievo 666 Jili 365 VIP register PHMAYA link PH cash VIP login register Yaman88 casino JP7 VIP We1Win download free rbet.win apk Jili168 casino login register download Milyon88 com casino register 18JL login app 88jili withdrawal AAA Casino jilibet.com register Winjili55 UG777 login app PH777 download Jili365 bet login app Osm Jili GCash 77tbet philippines GI Casino login philippines 88jili login FC178 casino free 100 SG777 Com Login registration Nice88 free 100 Oxjili Royal777 Top777 login FB777 live 200jili login Gogojili legit Yes Jili com login phcash.vip casino Sugal777 app download 58JL app Login Panalo login JILI games APK Lucky99 Slot login Jili scatter gcash 7XM APP download FB JILI casino login download PHMACAO app ROYAL888 Link Alternatif ACEPH Casino - Link 55bmw.com casino Timeph app Osm Jili GCash M GG777 Ubet95 login Jiligo88 CG777 Casino Philippines Tayabet login Boss jili app download YY777 app download Nice88 free 120 register no deposit bonus Bossjili7 XOJILI login 68 PHCASH login ezjili.com download apk Jili 365 VIP APK Milyon88 pro Jili88 casino login register download Jili online casino AgilaPlay Jili scatter gcash 7777pub login CC6 app bonus JK4 online PHJOIN casino Joyjili login register 22phmaya 5JILI Casino login register Betso88 VIP Winph 8 Phmacao rest JILI Slot game download free s888.live legit APALDO Casino link Plot 777 casino login register Philippines Ph646wincom Jili168 login app Philippines KKJILI casino Apaldo PH Phdream live chat Slot VIP777 PH888BET 22 phginto 50JILI APP MWPLAY login register Slotph We1Win apk VIP777 slot login Nice88 PRIZEPH online casino Jilipark App 7XM app for Android Jili58 Jili168 free 100 APALDO 888 CASINO login APaldo download Jiliasia8 com slot game phcash.vip casino OKJL Casino Login YY777 live Jili888 register Winjiliph QQ jili casino login registration Abcjili5 NN777 register Phvip casino Taya 365 casino login OKBet app Osm Jili GCash Nice88 free 100 5JILI Casino login register Bet88 app download 5 55bmw vip Jlph11 JILI slot casino login Nice88 bet sign up bonus JILI Slot game download for Android Abc Jili com Download FF777 TV Peso 63 online casino MILYON88 register free 100 7777pub JILIASIA 50 login CC6 online casino latest version Royal Club apk 1xBet login registration CG777 Casino Philippines 1xBet app Mwcbet net login Password LOVEJILI 21 FBJILI Now use Joyjili Promo code JILI188 casino login register download PHMACAO SuperPH login AGG777 login app Peso 63 online casino filiplay Sugal777 app download Galaxy88casino com login EZJILI Telegram JiliApp ph04 Jilino1 com you can now claim your free 88 PHP download 63win Coupon Code PHDream 8 login register Philippines MNL168 website CC6 online casino register login 3jl app download apk Jlph7 TA777 com Login Register password 5jili11 FF777 casino login Register KKJILI casino login register 10 JILI slot game 3JL login app Jili100 APP Winjili55 Milyon88 info Jilino1 VIP login YE7 bet sign up bonus Apaldo games Wj casino app AbcJili win.ph log in Jili22 VIP 204 SG777 Jl77 Casino login YY777 app download Jilimacao Okjl space Wjevo777 download Ubet95 free 100 no deposit bonus PHMAYA APK Xojili legit 77PH bet login Taya365 pilipinong sariling casino LOVEJILI AAAJILI Casino link Jollibee777 How to play mwplay888 18jl app download jilievo.com login password VIP PH casino mnl168.net login JiliLuck download Win2max casino 777PNL download app Ubet Casino Philippines Win888 Login Jili88 casino login register Philippines sign up Bet99 APK 18JL casino Login register Download Naga888 login JLPH login PHMACAO APK free download How to register Milyon88 Royal888ph com login JiliCC entertainment WINJILI customer service PHBET88 Jili888 Login Philippines SG777 slot FBJILI Jili365 bet login app Ubet95 free 100 no deposit bonus Taya 365 casino login LOVEJILI Jili777 free 150 YE7 casino login register download QQJili 58jili login Download S888 sabong Gi77 casino Login taya777 customer service philippines number 24/7 WINJILI customer service Https www wjevo com promocenter promotioncode Nice99 casino login Phdream 44 login Mi777app 777PNL online Casino login phjl.com casino JILILUCK promo code Pogibet 888 login BigWin Casino legit Jolibet app download Jilli pogibet.com casino JP7 VIP login Ug7772 Phjoy JILIMACAO 123 PH143 online casino jili365.bet download PH cash VIP login register Abc Jili Register Mwgooddomain login 58JL Casino link 365 Jili casino login no deposit bonus JILIEVO Casino 777 60win OKGames casino 49jili VIP kkjili.com app JILIPARK casino login Register Philippines Agila Club casino OKGames GCash OKBet casino online S888 juan login Yaman88 log in Winph99 com m home login Jili88 casino login register Winjiliph CG777 Casino LOGIN Register Ubet Casino Philippines Agilaclub review Is 49jili legit ph646 JLBET link JiliCC entertainment Jilicity withdrawal Ta777 casino online Jili777 login register Philippines JP7 coupon code Milyon88 one Ug7772 Jilibet casino 77PH VIP Login download Jili live login 68 PHCASH 7XM APP download Boss jili login MWCASH88 APP download Jilicity login Acegame888 real money LIKE777 JILILUCK app JiliBay Telegram Bet199 login philippines Ph646wincom PHJOIN login OKGames register JILIASIA withdrawal Panalo login 88jili Login Philippines Wjevo777 download phjl.com casino Fcc777 login Labet8888 login JILI8998 casino login PHJL Login password Jilibay Voucher Code 28k8 Casino P88jili download 49jili apps download Fk777city we1win CG777 Casino login no deposit bonus MW play casino FF777 casino login Register Philippines download JILIAPP com login Download Bet199 PHGINTO com login Bet88 bonus Sw888 withdrawal Vvjl666 Jiliapp 777 Login QQ jili login Jilicity download Jili188 login Philippines Timeph philippines Casino Club app download Nice88 bet login registration Bay888 login PH Cash casino download Jiliko777 Nice88 PH 777pnl Jiliplay login register JILI VIP casino cg777 mwcbets.com login Fbjili2 JILIAPP download 7xm login 77jl.com login JILI Slot game download for Android MWPLAY app superph.com casino Nice88 free 120 WJ peso app Jili58 register 3jl app download apk Betso88 link OKGames login free JILIASIA 888 login 58jl login register Jilibet888 68 PHCASH login Jili88ph net register 55BMW Casino app download APK Abc Jili com Download FB777 register login Philippines Jilievo org m home JiliLuck download jlbet.com login register Jp7 casino login 18JL Casino Login Register YE7 casino APK prizeph Boss jili login Royal logo FC178 casino - 777 slot games Taya777 pilipinong sariling casino Ph888 MWPLAY app @Plot777_casino CG777 login BOSS JILI login Register JILI PH646 login Vvjlstore Mi777 casino login Download Okgames redeem code 50JILI VIP login registration Bet88 login AGG777 login Philippines JILIMACAO Yesjili com legit P88jili com login OKBET88 Gold JILI VIP PH casino VIP PH log in bet88.ph legit kkjili.com app JiliLuck Login JILI Vip777 login 63win withdrawal bet999.ph login m.nn777 login 58JL 8k8app17