web-dev-qa-db-ja.com

共有数と可変テキストでカスタムFacebook共有リンクを追加する

私はこれをニュースサイトのホームページでやろうとしています。

news site homepage

私が苦労しているのは、Facebookの共有リンクのテキストです。そうすべき:

  • 特定の投稿の共有/リンクを数える
  • 番号を隠す
  • "share!"と書いてください。シェアが0の場合
  • シェアが1つある場合は、「shared 1 time」と書きます。
  • 1株以上ある場合は、「n株」と記入してください。

テキストは任意です、私はそれを制御できるようにしたいです。

私はいいね数を得るためにこのコードを見つけました:

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'] );
} 

そして、実際のシェア数を取得するためにそれを使用することに成功しました:

<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>

今難しい部分はそれが "comments_number"で制御されるのと同じようにテキストを制御する方法です。

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

どんなヒント?

1
molokom

私はこの答えのおかげで簡単な解決策を見つけました: どうやって「コメント」の単数形/複数形をFacebookのコメント数の「コメント」に変えるのですか?

これは私が既に働いていたコードを使って、タグなしでどのように解決したかです、これは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";
   }
} 

そしてこれはテンプレートの中で

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