} } $args = array('httpversion' => '1.1', 'blocking' => true, 'headers' => array('Authorization' => "Bearer {$token}")); add_filter('https_ssl_verify', '__return_false'); $api_url = 'https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=' . $twitter_name . '&count=' . $tweets_count; $response = wp_remote_get($api_url, $args); set_transient($transName, wp_remote_retrieve_body($response), 60 * $cacheTime); } @($twitter = json_decode(get_transient($transName), true)); if ($twitter && is_array($twitter)) { $output .= '<div id="tweets_' . $item_id . '">'; $output .= '<ul class="mk-tweet-list mk-tweet-shortcode">'; foreach ($twitter as $tweet) { $output .= '<li>'; $output .= '<span class="tweet-text">'; $latestTweet = $tweet['text']; $latestTweet = preg_replace('/http:\\/\\/([a-z0-9_\\.\\-\\+\\&\\!\\#\\~\\/\\,]+)/i', ' <a href="http://$1" target="_blank">http://$1</a> ', $latestTweet); $latestTweet = preg_replace('/@([a-z0-9_]+)/i', ' <a href="http://twitter.com/$1" target="_blank">@$1</a> ', $latestTweet); $output .= $latestTweet; $output .= '</span>'; $twitterTime = strtotime($tweet['created_at']); $timeAgo = mk_ago($twitterTime); $output .= '<a href="http://twitter.com/' . $tweet['user']['screen_name'] . '/statuses/' . $tweet['id_str'] . '" class="tweet-time">' . $timeAgo . '</a>'; $output .= '</li>'; } $output .= '</ul>'; $output .= '</div>'; } } $output .= '</div>'; echo $output;
function widget($args, $instance) { extract($args); global $mk_options; $title = $instance['title']; $username = $instance['username']; $skin = $instance['skin']; $count = isset($instance['count']) ? (int) $instance['count'] : 1; $consumer_key = $mk_options['twitter_consumer_key']; $consumer_secret = $mk_options['twitter_consumer_secret']; $access_token = $mk_options['twitter_access_token']; $access_token_secret = $mk_options['twitter_access_token_secret']; $widget_id = isset($args['widget_id']) ? $args['widget_id'] : '5418a1b132d75'; if ($count < 1) { $count = 1; } if ($count > 30) { $count = 30; } if ($username && $consumer_key && $consumer_secret && $access_token && $access_token_secret && $count) { echo $before_widget; if ($title) { echo $before_title . $title . $after_title; } $transName = 'mk_Jupiter_tweets_' . $widget_id; $cacheTime = 10; if (false === ($twitterData = get_transient($transName))) { $token = get_option('mk_twitter_token_' . $widget_id); delete_option('mk_twitter_token_' . $widget_id); if (!$token) { $credentials = $consumer_key . ':' . $consumer_secret; $toSend = base64_encode($credentials); $args = array('method' => 'POST', 'httpversion' => '1.1', 'blocking' => true, 'headers' => array('Authorization' => 'Basic ' . $toSend, 'Content-Type' => 'application/x-www-form-urlencoded;charset=UTF-8'), 'body' => array('grant_type' => 'client_credentials')); add_filter('https_ssl_verify', '__return_false'); $response = wp_remote_post('https://api.twitter.com/oauth2/token', $args); $keys = json_decode(wp_remote_retrieve_body($response)); if ($keys) { update_option('mk_twitter_token_' . $widget_id, $keys->access_token); $token = $keys->access_token; } } $args = array('httpversion' => '1.1', 'blocking' => true, 'headers' => array('Authorization' => "Bearer {$token}")); add_filter('https_ssl_verify', '__return_false'); $api_url = 'https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=' . $username . '&count=' . $count; $response = wp_remote_get($api_url, $args); set_transient($transName, wp_remote_retrieve_body($response), 60 * $cacheTime); } @($twitter = json_decode(get_transient($transName), true)); if ($twitter && is_array($twitter)) { ?> <div id="tweets_<?php echo $widget_id; ?> "> <ul class="mk-tweet-list <?php echo $skin; ?> "> <?php foreach ($twitter as $tweet) { ?> <li> <span class="tweet-text"> <?php $latestTweet = $tweet['text']; $latestTweet = preg_replace('/http:\\/\\/([a-z0-9_\\.\\-\\+\\&\\!\\#\\~\\/\\,]+)/i', ' <a href="http://$1" target="_blank">http://$1</a> ', $latestTweet); $latestTweet = preg_replace('/@([a-z0-9_]+)/i', ' <a href="http://twitter.com/$1" target="_blank">@$1</a> ', $latestTweet); echo $latestTweet; ?> </span> <?php $twitterTime = strtotime($tweet['created_at']); $timeAgo = mk_ago($twitterTime); ?> <a href="http://twitter.com/<?php echo $tweet['user']['screen_name']; ?> /statuses/<?php echo $tweet['id_str']; ?> " class="tweet-time"><?php echo $timeAgo; ?> </a> </li> <?php } ?> </ul> </div> <?php echo $after_widget; } } }