it-swarm.com.de

Fügen Sie einen benutzerdefinierten Link für die Facebook-Freigabe mit der Anzahl der Freigaben und variablem Text hinzu

Ich versuche dies in einer News-Site-Homepage zu tun.

news site homepage

Der Teil, mit dem ich zu kämpfen habe, ist der Link-Text für die Facebook-Freigabe. Es sollte:

  • zählen Sie den Anteil/Link des jeweiligen Beitrags
  • verstecke die Zahl ist es ist 0
  • schreibe "share!" wenn es 0 Aktien hat
  • schreibe "shared 1 time" wenn es 1 share hat
  • schreibe "n Shares", wenn es mehr als 1 Shares hat.

Der Text ist beliebig, ich möchte ihn kontrollieren können.

Ich habe diesen Code gefunden, um die Anzahl der Likes zu ermitteln:

function get_likes($url) {
 $json_string = file_get_contents('http://graph.facebook.com/?ids=' . $url);
 $json = json_decode($json_string, true);
 return intval( $json[$url]['shares'] );
} 

Und ich habe es geschafft, die tatsächliche Anzahl der Freigaben zu ermitteln:

<a href="http://www.facebook.com/sharer.php?u=<?php the_permalink();?>&t=<?php the_title(); ?>">
 <?php $url = get_permalink( $post_id ); echo get_likes("$url"); ?> shares</a>

Der schwierige Teil wäre nun, den Text so zu steuern, wie er in "comments_number" gesteuert wird:

comments_number( 'no responses', 'one response', '% responses' );

Irgendein Hinweis?

1
molokom

Dank dieser Antwort habe ich eine einfache Lösung gefunden: Wie ändere ich den Singular/Plural für "Kommentar" in "Kommentare" für die Anzahl der Facebook-Kommentare?

Hier ist, wie ich ohne das Tag gelöst habe, mit dem Code, für den ich bereits gearbeitet habe, dies geht in function.php

function get_likes($url) {
   $json_string = file_get_contents('http://graph.facebook.com/?ids=' . $url);
   $json = json_decode($json_string, true);
   $count = intval( $json[$url]['shares'] );
   if ($count == 0) {
     echo "share!";
   } elseif ($count == 1) {
     echo "shared 1 time";
   } else {
   echo "$count shares";
   }
} 

und das in der Vorlage

<?php $url = get_permalink( $post_id ); echo get_likes($url); ?>
1
molokom