Se discuta, inca de la aparitia acestora, despre utilitatea/inutilitatea formularelor de comentarii de la Facebook. Nu voi arata aici argumentele pro sau contra acestora, ci va voi spune cum sa le implementati efectiv pe blogul vostru.

Daca va hotarati sa folositi formularul de comentarii de la Facebook iata ce trebuie sa faceti.

Pasul 1: crearea aplicatiei pe Facebook

Mergeti la siteul dezvoltatorilor de aplicatii pentru Facebook si, daca nu sunteti autentificati, logati-va cu datele pe care le folositi pentru contul Facebook.

formularul de comentarii de la Facebook

Apasati pe butonul + Create New App din dreapta-sus.
In fereastra care apare, la App Display Name, treceti un nume sugestiv pentru aplicatia pe care o veti crea (gen Comentarii alex.mielus.ro).

formularul de comentarii de la Facebook

In fereastra care apare dupa crearea aplicatiei, scrieti in tabul Basic info, in dreptul App domain, domeniul unde veti pune formularul de comentarii de la Facebook (in cazul meu, mielus.ro).

formularul de comentarii de la Facebook

In tabul Select how your app integrates with Facebook, apasati pe Website si, in dreptul campului Site URL, scrieti adresa blogului vostru (https://alex.mielus.ro in cazul meu).

Salvati modificarile: Save changes.

Pasul 2: editarea temei blogului

Deschideti acum o alta fereastra si mergeti la editorul temei blogului vostru.
Editati fisierul header.php si plasati acest cod inainte de </head>:

<meta property="fb:admins" content="idfacebook"/>
<meta property="fb:app_id" content="appid">

… unde idfacebook este ID-ul vostru pe Facebook si appid este numarul acela lung din fereastra de administrare a aplicatiei (App ID).

==========

ID-ul de Facebook il puteti gasi mergand la unul dintre albumele voastre foto si facand click pe o poza. In bara de adresa veti avea o adresa de genul: https://www.facebook.com/media/set/?set=a.10150572420713313.425383.624258312&type=3#!/photo.php…. Acel ultim numar de dupa punct (set=a.10150572420713313.425383.624258312) este ID-ul vostru de Facebook (in cazul meu: 624258312).

==========

Deschizi apoi header.php din folderul temei tale.
Imediat dupa <body> adaugi:

<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/en_US/all.js#xfbml=1&appId=IDul";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

… unde IDul este numarul acela lung din fereastra de administrare a aplicatiei (App ID).

Apoi ai doua variante:

  1. Dezactivezi complet formularul de comentarii de la WordPress.
  2. Mergi in paralel cu cele doua forme de a comenta.

Varianta 1: Dezactivarea formularulului de comentarii de la WordPress si inlocuirea lui cu cel de la Facebook

Inlocuiti

<?php comments_template(); ?>

cu

<div class="fb-comments" data-href="<?php the_permalink() ?>" data-num-posts="numarul-de-comentarii" data-width="latimea" data-colorscheme="nuanta" data-mobile="false"></div>

…. unde numarul-de-comentarii = numarul de comentarii care sa fie aratat default, latimea = latimea formularului si nuanta = dark (inchisa) sau light (deschisa) in functie de tema blogului vostru.

Varianta 2: Adaugarea formularului de comentarii de la Facebook

Adaugati

<div class="fb-comments" data-href="<?php the_permalink() ?>" data-num-posts="numarul-de-comentarii" data-width="latimea" data-colorscheme="nuanta" data-mobile="false"></div>

imediat inainte de (sau dupa)

<?php comments_template(); ?>

In cazul in care optezi pentru varianta 2, vei vrea probabil sa arati numarul de comentarii combinat (comentarii Facebook + comentarii WordPress). Ce ai de facut?

Deschide fisierul functions.php din directorul temei tale si adauga la final:

function full_comment_count() {
global $post;
$url = get_permalink($post->ID);

$filecontent = file_get_contents('https://graph.facebook.com/?ids=' . $url);
$json = json_decode($filecontent);
$count = $json->$url->comments;
$wpCount = get_comments_number();
$realCount = $count + $wpCount;
if ($realCount == 0 || !isset($realCount)) {
    $realCount = 0;
}
return $realCount;
}

Apoi oriunde apare codul acesta in tema ta (poate aparea in mai multe fisiere, in functie de cum e construita tema: comments.php, single.php, index.php, home.php, search.php, category.php, archive.php, author.php) …

<?php comments_popup_link('0','1','%'); ?>

… inlocuieste-l cu:

<?php echo full_comment_count(); ?>

Daca numarul de comentarii din comments.php este exprimat printr-o propozitie, atunci puteti folosi acest cod:

<?php
	$commentCount = full_comment_count();
	if ( $commentCount == 0 ) {
		echo '<h5>Nu sunt comentarii. Fii primul care comenteaza!</h5>';
	}
	else if ( $commentCount == 1 ) {
		echo '<h5>Un comentariu. Adauga-l pe al tau!</h5>';
	}
	else {
		echo '<h5>' . $commentCount . ' comentarii. Adauga-l pe al tau!</h5>';
	}
?>