Я хочу отображать поле комментариев FB на каждой странице, но иметь свои собственные комментарии, характерные для этой страницы.

Недавно я закодировал свой собственный блог для сайта, который я делаю. Я хочу использовать facebook для обработки комментариев к сообщениям, поэтому я интегрировал плагин. Однако я заметил нечто странное. Если я прокомментирую один пост в блоге, то перейду к другому, мой комментарий относится и к другим постам в блоге. Как сделать так, чтобы у каждого поста был свой набор комментариев?


person Nickolas Shaffer    schedule 14.07.2012    source источник


Ответы (3)


Вы должны установить другой атрибут data-href для каждого сообщения. Вот пример того, как я это делаю в Yii:

<div class="fb-comments" data-href="http://domain.com/post/view/<? echo $model->id; ?>" data-num-posts="4" data-width="695"></div>

Дело в том, что значение data-href должно быть уникальным для каждого поста.

person liliumdev    schedule 14.07.2012

Предполагая, что вы используете поле комментариев html5.

См.: https://developers.facebook.com/docs/reference/plugins/comments/

data-href="" // data href устанавливает URL-адрес «идентификатор объекта» для поля, вам нужно использовать динамическую систему с php, javascript или любым другим языком, на котором вы кодировали.


<div style="padding-left:5px; min-height:500px" class="fb-comments" data-href="'+newUrl+'" data-num-posts="20" data-width="380"></div>

"я использую" ПРИМЕР: следующие примеры работают для страниц с динамическими URL

example.com?id=thisid&thisarticle=article-name

<div id="thecomments"></div>
    <script>
    function changeCommentsUrl(newUrl){
    // should refresh fb comments plugin for the "newUrl" variable
    document.getElementById('thecomments').innerHTML='';
    parser=document.getElementById('thecomments');
    parser.innerHTML='<div style="padding-left:5px; min-height:500px" class="fb-comments" data-href="'+newUrl+'" data-num-posts="20" data-width="380"></div>';
    FB.XFBML.parse(parser);
    }
    var thisurl = document.write(document.URL);
    changeCommentsUrl(thisurl);
    </script>
person Shawn E Carter    schedule 14.07.2012

Вы можете просто поместить такой фрагмент в свой нижний колонтитул:

<script>
    $(".fb-comments").attr("data-href", window.location.href);
</script>

Это делает работу...

person daneczech    schedule 29.08.2015
comment
+1! Хороший трюк. Однако имейте в виду, что добавление значения data-href должно быть выполнено до вызова скрипта facebook. Просто указываю, потому что в документации он загружается сразу после тега ‹body›, когда нет значения data-href. - person adelriosantiago; 01.05.2016