Добавьте пользовательскую ссылку на общий доступ Facebook с количеством общих ресурсов и изменяемым текстом


Я пытаюсь сделать это на главной странице новостного сайта.

news site homepage

Часть, с которой я борюсь, - это текст ссылки на Facebook. Он должен:

  • подсчитайте долю/ссылку конкретного сообщения
  • скрыть число - это 0
  • напишите "поделиться!", если у него 0 акций
  • напишите "общий доступ 1 раз", если у него есть 1 общий доступ
  • напишите "n акций", если у него более 1 акций.

Текст произвольный, я хотел бы иметь возможность чтобы контролировать его.

Я нашел этот код, чтобы подсчитать количество лайков:

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

Есть какой-нибудь намек?

Author: molokom, 2014-02-20

1 answers

Благодаря этому ответу я нашел простое решение: Как изменить единственное/множественное число в "комментарии" на "комментарии" в количестве комментариев 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
Author: molokom, 2017-05-23 12:40:08