среда, 22 мая 2013 г.

Установить facebook like button

Ддя того что бы поставить на сайт лайк фейсбука, надо зайти на страницу https://developers.facebook.com/docs/reference/plugins/like/
Воспользовавшись конфигуратором сгенерировать код кнопки и поставить его на страницу.

Например так:

После открывающего тега <body>


<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/ru_RU/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>


Туда, где должна находится кнопка лайка

<div class="fb-like" data-send="true" data-width="450" data-show-faces="true"></div>


Но это еще не всё.
На момент написания поста фейсбук еще не поправил кодогенератор и кое-что придется подправлять ручками.

В

<div class="fb-like" data-send="true" data-width="450" data-show-faces="true"></div>

Надо добавить обязательный параметр href, значение которого должно быть уникальным для каждой страницы. Т.е. на странице он должен выглядеть вот так:

<div class="fb-like" href="http://badphpcoder.blogspot.ru" data-send="true" data-width="450" data-show-faces="true"></div>


Вот конечный код с генерацией ссылки для текущей страницы:

<div class="fb-like" href="http://<?php echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>" data-send="false" data-layout="button_count" data-width="450" data-show-faces="false"></div>

Теперь кнопка работает.

23 комментария:

  1. Если ставить лайк, то он отображается на всех постах в блоге. Как сделать чтобы кнопка было отдельно для каждого поста?
    В конечном коде, который вы написали, вообще непонятно что к чему.

    ОтветитьУдалить
    Ответы
    1. Вам надо что бы в href была ссылка на текущую страницу.
      href="вот здесь вот"

      У меня там php код вставлен для автоподстановки

      Удалить
  2. уффф что делать а уже сил нет опять количество лайков на постах одинаковы...

    ОтветитьУдалить
  3. Ответы
    1. Ну вы хоть напишите, что сделали, я же не телепат

      Удалить
  4. biruz
    знаю....но я сделала то что вы выше написали и на всех постах количество лайков одинаковыми стали ...

    ОтветитьУдалить
  5. biruz
    сайт же динамический немогу же я к каждому посту разные href добавлять ..нужно чтобы они определялись автоматически..
    спс заранее!

    ОтветитьУдалить
    Ответы
    1. За автоподстановку отвечает вот этот код: < ?php echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ? >
      Он у вас работает?

      Удалить
  6. biruz
    хоть и этот код поставил но все равно количество всех лайков одинаковы....

    ОтветитьУдалить
    Ответы
    1. А он отрабатывает? Посмотрите на сайте самом, правильно там ссылки генерируются?

      Удалить
    2. да конечно..там и еще кол. просмотров и тд....все работает вот только с лайкоми(

      Удалить
  7. biruz
    прям так нужно да?
    data-href=" и ваш выше указ. код"

    ОтветитьУдалить
    Ответы
    1. просто href вместо data-href

      Удалить
    2. biruz
      и просто href добавил они опять все одинаковые..

      Удалить
    3. biruz
      и когда я вот это пишу ----- href="http://ваш код"

      и нажимаю лайк выходит чужой адрес --- http://invalid.invalid/?

      Удалить
    4. Можете показать какие ссылки генерируются?

      Удалить
  8. biruz
    например так ...
    http://www.xxxxx./view_news.php?id=322&id_lang=1

    ОтветитьУдалить
    Ответы
    1. или на глав.странице www.xxxx. посты находятся..

      Удалить
    2. Я не знаю, в чем причина =( По идее должно работать

      Удалить
    3. biruz
      в чем ошибка не понимаю....
      жал код нельзя вставить(?

      Удалить
  9. Спасибо, искал решение проблемы, нашел на Вашем блоге! Все работает как надо! :-)

    ОтветитьУдалить