WordPress: Adună numărul comentariilor de pe blog cu numărul comentariilor de pe Facebook

În momentul în care te hotărăşti să-ţi pui şi formularul de comentarii Facebook pe lângă cel normal, vei observa că în orice loc din template-ul tău unde se numără comentariile, vor apărea numărate doar cele normale, de pe blog. E un lucru normal, aş spune, pentru că WordPress-ul e făcut să-şi numere singur comentariile, nu să le numere şi pe cele din alte părţi.

Pentru că mi s-a atras atenţia că numărul comentariilor nu e cel bun de când am introdus Facebook Comments, am încercat să caut o soluţie pentru a face modificarea. Azi am găsit tutorialul de-aici şi pentru că mie mi-a ieşit modificarea, mă gândeam să vă spun şi vouă ce şi cum.

Se presupune că aveţi deja Facebook Comments instalat, deci asta n-o să mai explic. Aşadar:

1. În folderul temei tale, o să găseşti un fişier care se numeşte functions.php. Deschide-l cu orice editor de text (Notepad, Notepad++, Sublime Text Editor – eu folosesc Sublime) şi, la sfârşitul fişierului, adaugă codul de mai jos.

// Aduna comentariile blogului cu cele ale Facebook-ului
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;
}

Tocmai am creat o funcţie menită să numere toate comentariile, atât cele venite de la Facebook, cât şi cele de pe blog şi să le adune.

2. Modifică în temă funcţia care numără comentarii. Caută în tema ta o funcţie asemănătoare cu asta:

<?php comments_popup_link(‘0 comentarii’,’1 comentariu’,’% comentarii’); ?>

Dacă ai o temă mai nouă, modificarea se face doar în loop.php şi comments.php, dar dacă-i una mai veche, o să găseşti linia aia de cod şi în single.php şi în archive.php şi în page.php, index.php şi în multe alte locuri. Sfatul meu ar fi să deschizi toate fişierele temei şi să cauţi, asta dacă nu ştii prea multe despre WordPress ca să-ţi dai seama unde trebuie făcută modificarea.

Bun, dacă ai găsit funcţia, înlocuieşte-o cu:

<?php
$commentCount = full_comment_count();
if ( $commentCount == 0 ) {
echo ‘Niciun comentariu’;
}
else if ( $commentCount == 1 ) {
echo ‘Un comentariu’;
}
else {
echo ” . $commentCount . ‘ comentarii’;
}
?>

Ar trebui ca de acum în colo, peste tot pe unde apare numărul comentariilor, să se adune atât cele de pe Facebook cât şi cele de pe blog.

P.S.: WordPress-ul modifică de obicei codurile pe care le pun în articole. Dacă faceţi tot ce-am spus, dar observaţi că ceva nu merge, încercaţi să ştergeţi toate ghilimelele de genul ăsta ‘ şi să le scrieţi voi de la tastatură.

Lasă un comentariu

8 comentarii

  • Ana- 2 Oct 2012, ora 16:03

    si sa inteleg ca numarul comentariilor de pe facebook este mereu mai mare??

    • Cristian Florea 2 Oct 2012, ora 17:30

      Scuză-mă, dar nu ştiu cum de ai ajuns la concluzia asta.

  • Emilia 2 Oct 2012, ora 17:54

    ana probabil a ajuns la concluzia aceasta pentru ca in general pe facebook se aduna mai multe comentarii, dar totusi nu este un lucru obligatoriu.
    depinde foarte mult de ce fel de prezenta ai pe social media

    • Cristian Florea 2 Oct 2012, ora 18:39

      Da, nu-i nimic greşit în concluzie, doar că nu înţeleg ce legătură are afirmaţia cu articolul.

  • daniel rus 2 Oct 2012, ora 23:50

    eu trebuie să-l fac mai întâi să meargă pe asta de facebook :))

    • Cristian Florea 3 Oct 2012, ora 00:24

      Într-o zi poate găsim timp să stăm să lucrăm la asta, că nu se mai poate aşa. :))

  • dan 21 Dec 2012, ora 11:06

    Salut
    Modificarea de la pasul 2 in ce folder al temei trebuie realizata ca nu dau de ea.?

    • Cristian Florea 21 Dec 2012, ora 16:05

      Salut!

      În single.php e de obicei. Dar nu arată la fel la toate temele. La unele e diferit. Ideal ar fi să-ţi dai seama care-i funcţia care citeşte comentariile.