2012-05-01 5 views
0

すべて、 でそれらを表示します。私は、スライダーでそれらを置くために、次のコードを持っているツイートを取得し、私はいくつかのツイートを取得するために、次のコード持っているWordpressの

if(! $tweet) { 
    $url = "http://api.twitter.com/1/statuses/user_timeline.json?screen_name={$username}&count={$how_many}"; 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    $contents = curl_exec($curl); 
    curl_close($curl); 
    if (! empty($contents)) { 
     // Decode it. 
     $tweet = json_decode($contents); 
     } 
    } 

    // Check to make sure we have a tweet and display it. 
    if ($tweet) { 
     do_action('themeblvd_twitter_slider', $tweet, $options, $username, $slider_id); 
    } else { 
     $output = 'Twitter timed out.'; 
    } 
    return $output; 

を:

function themeblvd_twitter_slider_default($tweet, $options, $username, $slider_id) { 
$tweet = (array)$tweet; 
$classes = themeblvd_get_classes('slider_standard', true); 
$classes .= ' hide-nav_standard'; 
$classes .= ' show-nav_arrows'; 
$classes .= ' show-pause_play'; 

//themeblvd_twitter_slider_js($slider_id, $options); 
?> 
<div id="tb-slider-<?php echo $slider_id; ?>" class="slider-wrapper standard-slider-wrapper"> 
    <div class="slider-inner<?php echo $classes; ?>"> 
     <div class="slides-wrapper slides-wrapper-<?php echo $slider_id; ?>"> 
      <div class="slides-inner"> 
       <div class="slider standard-slider flexslider"> 
        <div class="tb-loader"></div> 
        <ul class="slides"> 
           <?php 
           foreach($tweet as $t){ 
           ?> 
           <li class="slide tight <?php echo $classes; ?>"> 
            <div class="slide-body"> 
             <div class="grid-protection"> 
             <?php 
             echo '<span class="tweet-icon '.$options['icon'].'"></span>'; 
             echo '<a href="http://twitter.com/'.$username.'/status/'.$t->id_str.'" target="_blank">'; 
             echo $t->text; 
             echo '</a>'; 
             ?> 

             </div><!-- .grid-protection (end) --> 
            </div><!-- .slide-body (end) --> 
           </li> 
           <?php 
           } 
           ?> 
        </ul> 
       </div><!-- .slider (end) --> 
      </div><!-- .slides-inner (end) -->     
     </div><!-- .slides-wrapper (end) --> 
    </div><!-- .slider-inner (end) --> 
    <div class="design-1"></div> 
    <div class="design-2"></div> 
    <div class="design-3"></div> 
    <div class="design-4"></div>      
</div><!-- .slider-wrapper (end) --> 
<?php 
} 
?> 

このコードは約90%の時間で動作し、ユーザー名などに基づいてつぶやきを取得します。ただし、テキストを表示せずに回転する時間の約10%です。誰もが、私はこのツイートが常に表示されるようにこのソリューションを作ることができる何かを見るか?私が行方不明のエラー処理の観点から、つぶやきを取得できない場合に追加して表示できないものはありますか?事前にどんなアドバイスを

感謝。

+0

"twitter timed out"をどのように出力しますか? – Zombaya

答えて

0

実際にTwitterが返すものが実際につぶやきのリストであるかどうかを調べることができます。現時点では、Twitterが何かを返すかどうかだけを確認します。

// Check to make sure we have a tweet and display it. 
if (is_array($tweet) && isset($tweet[0]->id_str)) { 
    do_action('themeblvd_twitter_slider', $tweet, $options, $username, $slider_id); 
} else { 
    $output = 'Twitter timed out.'; 
} 
+0

ありがとう、私は次のエラーメッセージが表示されます:$ tweet [0] ['id_str']次のエラーメッセージが表示されます:致命的なエラー:型stdClassのオブジェクトを配列 – user1048676

+1

として使用できません。 '$ tweet [0] - > id_str'。それはうまくいくはずだと思う。 – Zombaya

+0

それはうまくいった。ありがとう! – user1048676

関連する問題