2012-05-01 124 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超時」? – 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

謝謝,如果我添加這部分isset($ tweet [0] ['id_str']我得到以下錯誤信息:致命錯誤:不能使用stdClass類型的對象作爲數組 – user1048676

+1

我害怕可能發生。 '$ tweet [0] - > id_str'。我認爲應該有效。 – Zombaya

+0

這很好,謝謝! – user1048676