2016-08-24 1 views
1

habe diesen Code online gefunden und es hat dann plötzlich funktioniert "Fataler Fehler: Objekt des Typs stdClass kann nicht als Array verwendet werden. .functions.php "in dieser Zeile $ count = absint ($ json [0] -> total_count);Fataler Fehler: Objekt des Typs stdClass kann nicht als Array in ... verwendet werden. Functions.php

function ds_post_like_count($post_id) { 

    // Check for transient 
    if (! ($count = get_transient('ds_post_like_count' . $post_id))) { 

    // Setup query arguments based on post permalink 
    $fql = "SELECT url, "; 
    //$fql .= "share_count, "; // total shares 
    //$fql .= "like_count, "; // total likes 
    //$fql .= "comment_count, "; // total comments 
    $fql .= "total_count "; // summed total of shares, likes, and comments (fastest query) 
    $fql .= "FROM link_stat WHERE url = '" . get_permalink($post_id) . "'"; 

    // Do API call 
    $response = wp_remote_retrieve_body(wp_remote_get('https://api.facebook.com/method/fql.query?format=json&query=' . urlencode($fql))); 

    // If error in API call, stop and don't store transient 
    if (is_wp_error($response)) 
     return 'error'; 

    // Decode JSON 
    **$json = json_decode($response);** 

    // Set total count 
    $count = absint($json[0]->total_count); 

    // Set transient to expire every 30 minutes 
    set_transient('ds_post_like_count' . $post_id, absint($count), 30 * MINUTE_IN_SECONDS); 

    } 

return absint($count); 

} /** Facebook End */ 

function ds_social_media_icons() { 



// Get the post ID 
    $post_id = get_the_ID(); ?> 
    <?php print_r($response) ?> 
    <div class="social-icons-wrap"> 
    <ul class="social-icons"> 
     <!-- Facebook Button--> 
     <li class="social-icon facebook"> 
      <a onclick="javascript:popupCenter('https://www.facebook.com/sharer/sharer.php?u=<?php the_permalink(); ?>&amp;appId=XXX_YOUR_FACEBOOK_APP_ID','Facebook Share', '540', '400');return false;" href="https://www.facebook.com/sharer/sharer.php?u=<?php the_permalink(); ?>&amp;appId=XXX_YOUR_FACEBOOK_APP_ID" target="blank"><i class="fa fa-facebook"></i> Share </a><span class="share-count"><?php echo ds_post_like_count($post_id); ?></span> 
     </li> 
     <!-- Twitter Button --> 
     <li class="social-icon twitter"> 
      <a onclick="javascript:popupCenter('https://twitter.com/share?&amp;url=<?php the_permalink(); ?>&amp;text=<?php the_title(); ?>&amp;via=XXX_YOUR_TWITTER_HANDLE','Tweet', '540', '400');return false;" href="https://twitter.com/share?&amp;url=<?php the_permalink(); ?>&amp;text=<?php the_title(); ?>&amp;via=XXX_YOUR_TWITTER_HANDLE" target="blank"><i class="fa fa-twitter"></i> Tweet </a><span class="share-count"><?php echo ds_post_tweet_count($post_id); ?></span> 
     </li>  
    </ul> 
    </div><!-- .social-icons-wrap --> 

<?php } 
/* DON'T DELETE THIS CLOSING TAG */ ?> 

Antwort

0

Um die Ausgabe als Array zu verwenden, müssen Sie den zweiten Parameter auf true setzen.

if(! is_wp_error($response) 
     && isset($response['response']['code'])   
     && 200 === $response['response']['code']) 
    { 
     $body = wp_remote_retrieve_body($response); 
     $fb = json_decode($body); 

     if(! isset($fb->likes) && isset($fb->shares)) 
     { 
      $fb->likes = $fb->shares; 
     } 

     if(isset($fb->likes)) 
     { 
      $myfblikes = sprintf('%04s', (int) $fb->likes); 
      update_post_meta($post->ID, 'fb_likes', $myfblikes); 
     } 
    } 

Sie this beziehen,

+0

$ json = json_decode ($ response, true); Dies führt dazu, dass die Suchergebnisse nicht gerendert werden. Das ist als Lösung auf einigen Websites zu sehen, funktioniert aber aus irgendeinem Grund nicht. Danke, obwohl –

+0

print_r ($ response) was ist? –

+0

Verzeihen Sie meine Php Ignoranz, fügte ich "print_r ....." in den Bereich der Funktionen php, die die Ergebnisse rendert. aber der Fehler ist 10 Zeilen davor, so dass es bei der 'Schwerwiegender Fehler: Kann nicht das Objekt des Typs StdClass als Array in ..' wo ist der beste Ort, um den Druck hinzuzufügen. wie ich sagte tut mir leid, ich mache nicht viel PHP –

Verwandte Themen