If this tutorial is not what you were looking for, you still have any questions, suggestions or concerns - feel free to let us know. Please help us to serve you better!

Your Name

Your Email

Your Message (required)


Featured templates

WordPress. How to activate Twitter widget (based on Twitter API 1.1)

This tutorial shows how to make twitter widget workable based on Twitter API 1.1.

WordPress. How to activate Twitter widget (based on Twitter API 1.1)

1. Go to dev.twitter.com, open My Applications-> Create a new application You need to create new app using this link:

2. Fill out the form and agree with terms and rules.

3.In Details tab you need to click on Create my access token. You will need Consumer key, Consumer secret, Access token, Access token secret in order to make widget workable.

4. Download and install oAuth Twitter Feed for Developers plugin using the following link: http://wordpress.org/extend/plugins/oauth-twitter-feed-for-developers

5. Open plugin settings in Settings –> Twitter Feed Auth.

6. Fill out the form. You need Consumer key, Consumer secret, Access token, Access token secret and twitter name in order to make widget workable.

7. You need to replace code in twitter widget file. File location depends on the theme.

– In case you are using regular WordPress theme: replace code in themeXXXX/includes/widgets/my-twitter-widget.php file with the one below.

– In case you are using Cherry framework theme: replace code in cherryFramework/includes/widgets/my-twitter-widget.php file with the one below.

  class MY_TwitterWidget extends WP_Widget {
  function MY_TwitterWidget() {
  $widget_ops = array(
  'classname' => 'twitter',
  'description' => __('A widget that displays the latest tweets', CURRENT_THEME)
  $this->WP_Widget( 'twitter-widget', __('Cherry - Twitter', CURRENT_THEME), $widget_ops );
  }   // Widget Settings
  function widget($args, $instance) {
  extract( $args );
  $title      = apply_filters('widget_title', $instance['title'] );
  $numb       = $instance['numb'];
  echo $before_widget;
  // Display the widget title
  if ( $title )
  echo $before_title . $title . $after_title;
  $opt_args = array(
  'trim_user'         => false,
  'exclude_replies'   => false,
  'include_rts'       => true
  $tweets = getTweets(get_option('tdf_user_timeline'), $numb, $opt_args); 
  if ( is_array($tweets) ){
  // to use with intents
  echo "<div class='twitter'>";
  echo '<script type="text/javascript" src="//platform.twitter.com/widgets.js"></script>';
  echo "<ul class='tweet_list unstyled'>";
  foreach($tweets as $tweet){
  echo '<li class="clearfix">';
  echo '<div class="tweet_item">';
  echo '<div class="tweet_content">';
  $user = $tweet['user'];
  // Tweet author avatar
  if ( array_key_exists('profile_image_url', $user) ) {
  $avatar = $user['profile_image_url'];
  // Tweet author name
  if ( array_key_exists('name', $user) ) {
  $name = $user['name'];
  // Tweet author @username
  if ( array_key_exists('screen_name', $user) ) {
  $screen_name = $user['screen_name'];
  if ( !$name ) $name = 'YOURUSERNAME';
  if ( !$screen_name ) $screen_name = 'YOURUSERNAME';
  echo '<div class="stream-item-header">';
  echo '<a class="account-group" href="http://twitter.com/'.$screen_name.'" target="_blank">';
  if ( isset($avatar) ) {
  echo '<img class="avatar" src="'.$avatar.'" alt="'.$name.'">';
  echo '<strong class="fullname">' . $name . '</strong>';
  echo '<span class="username">@' . $screen_name . '</span>';
  echo '</a>';
  echo '</div>';
  if ( $tweet['text'] ){
  $the_tweet = $tweet['text'];
  foreach($tweet['entities']['user_mentions'] as $key => $user_mention){
  $the_tweet = preg_replace(
  '<a href="http://www.twitter.com/'.$user_mention['screen_name'].'" target="_blank">@'.$user_mention['screen_name'].'</a>',
  foreach($tweet['entities']['hashtags'] as $key => $hashtag){
  $the_tweet = preg_replace(
  '<a href="https://twitter.com/search?q=%23'.$hashtag['text'].'&src=hash" target="_blank">#'.$hashtag['text'].'</a>',
  foreach($tweet['entities']['urls'] as $key => $link){
  $the_tweet = preg_replace(
  '<a href="'.$link['url'].'" target="_blank">'.$link['url'].'</a>',
  echo '<div class="tweet_txt">' . $the_tweet . '</div>';
  echo '<div class="clearfix">';
  echo '
  <div class="twitter_intents">
  <span><a class="reply-tweet" href="https://twitter.com/intent/tweet?in_reply_to='.$tweet['id_str'].'">Reply</a></span>
  <span><a class="retweet" href="https://twitter.com/intent/retweet?tweet_id='.$tweet['id_str'].'">Retweet</a></span>
  <span><a class="favorite-tweet" href="https://twitter.com/intent/favorite?tweet_id='.$tweet['id_str'].'">Favorite</a></span>
  echo '
  <div class="timestamp">
  <a href="https://twitter.com/'.$screen_name.'/status/'.$tweet['id_str'].'" target="_blank">
  '. date('d M', strtotime($tweet['created_at'])) .'
  echo "</div>";
  } else {
  echo '
  <br /><br />
  <a href="http://twitter.com/'.$screen_name.'" target="_blank">Click here to read '.$screen_name.'\'S Twitter feed</a>';
  echo '</div>';
  echo '</div>';
  echo '</li>';
  echo "</ul>";
  echo "</div>";
  echo $after_widget;
  }   // display the widget
  function update($new_instance, $old_instance) {
  $instance = $old_instance;
  //Strip tags from title and name to remove HTML
  $instance['title']      = strip_tags( $new_instance['title'] );
  $instance['numb']       = strip_tags( $new_instance['numb'] );
  return $instance;
  }   // update the widget
  function form($instance) {
  //Set up some default widget settings.
  $defaults = array(
  'title' => __('Latest Tweets', CURRENT_THEME),
  'numb' => '3',
  'show_info' => true
  $instance = wp_parse_args( (array) $instance, $defaults );
  // Widget Title: Text Input  ?>
  <label for="<?php echo $this->get_field_id( 'title' ); ?>">
  <?php _e('Title:', CURRENT_THEME); ?>
  <input type="text" id="<?php echo $this->get_field_id( 'title' ); ?>" class="widefat" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" />
  <label for="<?php echo $this->get_field_id( 'numb' ); ?>">
  <?php _e('Number of Twets:', CURRENT_THEME); ?>
  <input type="text" id="<?php echo $this->get_field_id( 'numb' ); ?>" class="widefat" name="<?php echo $this->get_field_name( 'numb' ); ?>" value="<?php echo $instance['numb']; ?>" />
  <?php }  // and of course the form for the widget options
  }   // The twitter widget class

Alternatively you can download modified file using this link.

8. Change widget styles in style.css file to

/* Twitter widget */
  .twitter {
position: relative;
.twitter .tweet_list {
overflow: hidden;
margin: 0;
.twitter .tweet_list > li {
margin: 0 0 15px 0;
padding: 0;
list-style-type: none;
overflow: hidden;
.twitter .tweet_list .timestamp {
position: absolute;
top: 0;
right: 0;
display: block;
font-size: 11px;
.twitter .tweet_list .timestamp a {
color: #999;
.twitter .tweet_item {
border-bottom: 1px solid #E8E8E8;
min-height: 51px;
padding: 9px 12px;
position: relative;
.twitter .tweet_content {
margin-left: 58px;
.twitter .tweet_txt {
padding: 0 0 5px 0;
.twitter .tweet_txt a {
font-weight: bold;
.twitter_intents {
text-align: right;
float: right;
font-size: 11px;
.twitter_intents span {
display: inline-block;
padding-left: 5px;
.twitter .stream-item-header .account-group {
color: #999;
.twitter .stream-item-header .avatar {
position: absolute;
top: 12px;
left: 12px;

9. Go to Appearance->Widgets. Find Cherry-Twitter/My-Twitter widget and set it to appropriate area.

Refresh your site. Twitter posts should show up in case all actions were done properly.

Feel free to check the detailed video tutorial below:

WordPress. How to activate Twitter widget (based on Twitter API 1.1)

Live Chat
We help you to choose the right product.
Start chat